我是靠谱客的博主 忧伤背包,最近开发中收集的这篇文章主要介绍如何在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中获取当前请求的IP所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部