我是靠谱客的博主 忧伤背包,这篇文章主要介绍如何在java中获取当前请求的IP,现在分享给大家,希望可以做个参考。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.*;

/**
 * 系统信息工具类
 */
public final class IPUtil {
private static Logger logger = LoggerFactory.getLogger(IPUtil.class);


private IPUtil() {
}
/**

* 取到当前机器的IP地址

*/

public static String getIp() {
String hostIp;

List<String> ips = new ArrayList<>();

Enumeration<NetworkInterface> netInterfaces;

try {
netInterfaces = NetworkInterface.getNetworkInterfaces();

while (netInterfaces.hasMoreElements()) {
NetworkInterface netInterface = netInterfaces.nextElement();

Enumeration<InetAddress> inteAddresses = netInterface.getInetAddresses();

while (inteAddresses.hasMoreElements()) {
InetAddress inetAddress = inteAddresses.nextElement();

if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
ips.add(inetAddress.getHostAddress());

}
}
}
} catch (SocketException ex) {
ex.printStackTrace();

}
hostIp = collectionToDelimitedString(ips, ",");

return hostIp;

}
private static String collectionToDelimitedString(Collection<String> coll, String delim) {
if (coll == null || coll.isEmpty()) {
return "";

}
StringBuilder sb = new StringBuilder();

Iterator<?> it = coll.iterator();

while (it.hasNext()) {
sb.append(it.next());

if (it.hasNext()) {
sb.append(delim);

}
}
return sb.toString();

}
/**

* 获取服务器名称

*/

public static String getHostName() {
String hostName = null;

try {
hostName = InetAddress.getLocalHost().getHostName();

} catch (Exception e) {
logger.warn(e.getMessage(), e);

}
return hostName;

}
}

最后

以上就是忧伤背包最近收集整理的关于如何在java中获取当前请求的IP的全部内容,更多相关如何在java中获取当前请求内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(123)

评论列表共有 0 条评论

立即
投稿
返回
顶部