
在java中如何获取ip地址
用户关注问题
如何在Java程序中获取本机的IP地址?
我想在Java代码里获取当前运行机器的IP地址,该怎么实现呢?
使用InetAddress类获取本机IP地址
可以通过Java的InetAddress类来获取本机IP地址。具体方法是调用InetAddress.getLocalHost(),然后使用getHostAddress()方法获取IP地址字符串。例如:
InetAddress ip = InetAddress.getLocalHost();
String ipAddress = ip.getHostAddress();
System.out.println("本机IP地址:" + ipAddress);
Java怎么获取所有网络接口的IP地址?
想要拿到电脑上所有网络接口对应的IP列表,有什么方法吗?
通过NetworkInterface和InetAddress遍历所有网络接口IP
可以使用Java中的NetworkInterface类结合InetAddress来遍历所有网络接口及其对应的IP地址。例如:
Enumeration<NetworkInterface> nics = NetworkInterface.getNetworkInterfaces();
while (nics.hasMoreElements()) {
NetworkInterface nic = nics.nextElement();
Enumeration<InetAddress> addresses = nic.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
System.out.println(nic.getName() + " IP: " + addr.getHostAddress());
}
}
Java中如何获取IPv4地址而不是IPv6?
获取本机IP时,结果是IPv6格式的地址,有没有办法确保获取IPv4地址?
过滤InetAddress类型,选择IPv4地址
通过判断InetAddress实例是不是IPv4地址可实现过滤。具体是判断InetAddress是否是Inet4Address的实例。例如,在遍历网络接口的IP时,加入条件检查:
if (addr instanceof Inet4Address) {
System.out.println("IPv4地址: " + addr.getHostAddress());
}