Java:获取本机所有IP地址,内网IP
来源:互联网 发布:js flag用法 编辑:程序博客网 时间:2024/04/29 08:20
获取IP地址
Java代码如下:
import java.net.Inet4Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.net.UnknownHostException;import java.util.Enumeration;public class TestGetIP { public static void main(String[] args) { TestGetIP testGetIP = new TestGetIP(); testGetIP.printAddresses(); System.out.println("\n\n\n\n"); System.out.println(testGetIP.getIP()); } // 找一个合理的ipv4 public String getIP() { try { // 根据hostname找ip InetAddress address = InetAddress.getLocalHost(); if (address.isLoopbackAddress()) { Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces(); while (allNetInterfaces.hasMoreElements()) { NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); Enumeration<InetAddress> addresses = netInterface.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress ip = addresses.nextElement(); if (!ip.isLinkLocalAddress() && !ip.isLoopbackAddress() && ip instanceof Inet4Address) { return ip.getHostAddress(); } } } } return address.getHostAddress(); } catch (UnknownHostException e) { e.printStackTrace(); return null; } catch (SocketException e) { e.printStackTrace(); return null; } } // 所有网络接口 public void printAddresses() { try { Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces(); while (allNetInterfaces.hasMoreElements()) { NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); // 去除回环接口,子接口,未运行和接口 if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) { continue; } Enumeration<InetAddress> addresses = netInterface.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress ip = addresses.nextElement(); if (ip != null) { System.out.println("ip = " + ip.getHostAddress()); // ipv4 if (ip instanceof Inet4Address) { System.out.println("ipv4 = " + ip.getHostAddress()); if (ip.getHostAddress().startsWith("192") || ip.getHostAddress().startsWith("10") || ip.getHostAddress().startsWith("172") || ip.getHostAddress().startsWith("169")) { // 内网 } } } } } } catch (SocketException e) { System.err.println("Error when getting host ip address"+ e.getMessage()); } }}
0 0
- Java:获取本机所有IP地址,内网IP
- Java获取本机所有ip地址
- java获取本机所有的IP地址
- java获取本机的所有ip地址 包括IPV6
- 获取本机所有IP地址
- 获取所有本机IP地址
- Python获取本机所有IP地址
- Python获取本机所有IP地址
- 获取本机所有IP java
- java获取本机的ip地址
- 用java获取本机IP地址
- 二、java获取本机ip地址
- java获取本机IP地址
- java获取本机的ip地址
- java获取本机ip地址方法
- JAVA获取本机网卡IP地址
- java获取本机IP地址
- Java获取本机IP地址
- leetcode 第20题<Valid Parentheses>(java)
- Elastic-Job项目源码分析4--为什么会有这么多的service?
- 使用maven创建web项目
- [CCF-CSP]201612-2(工资计算)
- 设计模式的基本原则 + 类与类之间的关系
- Java:获取本机所有IP地址,内网IP
- mac上最终运行react native init命令创建失败的解决方法
- Lucene创建索引
- android跳转到地图app
- 高德地图问题
- Spring自定义注解的使用
- 可以在SFP+插槽中使用SFP电口光模块吗?
- SVN安装配置,权限配置,常用命令
- Linux中的IO模型