Here you can find the source of getIP()
public static byte[] getIP()
//package com.java2s; //License from project: Apache License import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; public class Main { public static byte[] getIP() { try {/*from www . j a va 2 s. com*/ Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; byte[] internalIP = null; while (allNetInterfaces.hasMoreElements()) { NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); Enumeration addresses = netInterface.getInetAddresses(); while (addresses.hasMoreElements()) { ip = (InetAddress) addresses.nextElement(); if (ip != null && ip instanceof Inet4Address) { byte[] ipByte = ip.getAddress(); if (ipByte.length == 4) { if (ipCheck(ipByte)) { if (!isInternalIP(ipByte)) { return ipByte; } else if (internalIP == null) { internalIP = ipByte; } } } } } } if (internalIP != null) { return internalIP; } else { throw new RuntimeException("Can not get local ip"); } } catch (Exception e) { throw new RuntimeException("Can not get local ip", e); } } private static boolean ipCheck(byte[] ip) { if (ip.length != 4) { throw new RuntimeException("illegal ipv4 bytes"); } // if (ip[0] == (byte)30 && ip[1] == (byte)10 && ip[2] == (byte)163 && ip[3] == (byte)120) { // } if (ip[0] >= (byte) 1 && ip[0] <= (byte) 126) { if (ip[1] == (byte) 1 && ip[2] == (byte) 1 && ip[3] == (byte) 1) { return false; } if (ip[1] == (byte) 0 && ip[2] == (byte) 0 && ip[3] == (byte) 0) { return false; } return true; } else if (ip[0] >= (byte) 128 && ip[0] <= (byte) 191) { if (ip[2] == (byte) 1 && ip[3] == (byte) 1) { return false; } if (ip[2] == (byte) 0 && ip[3] == (byte) 0) { return false; } return true; } else if (ip[0] >= (byte) 192 && ip[0] <= (byte) 223) { if (ip[3] == (byte) 1) { return false; } if (ip[3] == (byte) 0) { return false; } return true; } return false; } public static boolean isInternalIP(byte[] ip) { if (ip.length != 4) { throw new RuntimeException("illegal ipv4 bytes"); } //10.0.0.0~10.255.255.255 //172.16.0.0~172.31.255.255 //192.168.0.0~192.168.255.255 if (ip[0] == (byte) 10) { return true; } else if (ip[0] == (byte) 172) { if (ip[1] >= (byte) 16 && ip[1] <= (byte) 31) { return true; } } else if (ip[0] == (byte) 192) { if (ip[1] == (byte) 168) { return true; } } return false; } }