`
NeverGiveUpToChange
  • 浏览: 42958 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java 获取本机IP及判断内外网地址方法

    博客分类:
  • java
 
阅读更多


public class Test {

  
public static final long a1 = getIpNum("10.0.0.0");
public static final long a2 = getIpNum("10.255.255.255");
public static final long b1 = getIpNum("172.16.0.0");
public static final long b2 = getIpNum("172.31.255.255");
public static final long c1 = getIpNum("192.168.0.0");
public static final long c2 = getIpNum("192.168.255.255");
public static final long d1 = getIpNum("10.44.0.0");
public static final long d2 = getIpNum("10.69.0.255");


public static boolean isInnerIP(String ip){  
        long n = getIpNum(ip);
        return (n >= a1 && n <= a2) || (n >= b1 && n <= b2) || (n >= c1 && n <= c2) || (n >= d1 && n <= d2);


private static long getIpNum(String ipAddress) {  
     String [] ip = ipAddress.split("\\.");  
     long a = Integer.parseInt(ip[0]);  
     long b = Integer.parseInt(ip[1]);  
     long c = Integer.parseInt(ip[2]);  
     long d = Integer.parseInt(ip[3]);  
     return a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;  
}

public static void main(String[] args) throws Exception {
     Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
     while (e.hasMoreElements()) {
       Enumeration<InetAddress> ee = e.nextElement().getInetAddresses();
       while (ee.hasMoreElements()) {
        String ip = ee.nextElement().getHostAddress();
        System.out.println(ip + " "+ ("127.0.0.1".equals(ip) ? "本机" : (isInnerIP(ip) ? "内网" : "外网")));
       }
     }
}

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics