public static String getIp(){
String localip=null;//本地IP,如果没有配置外网IP则返回它
String netip=null; //外网IP
try {
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
while( netInterfaces.hasMoreElements() ) {
NetworkInterface ni = netInterfaces.nextElement();
Enumeration<InetAddress> address = ni.getInetAddresses();
while( address.hasMoreElements() ) {
InetAddress ip=address.nextElement();
System.out.println( "interface name: "+ni.getName()
+ "; IP: "+ip.getHostAddress()
+ "; Site local address:"+ip.isSiteLocalAddress()
+ "; Loopback address: "+ip.isLoopbackAddress() );
if( ip.isLoopbackAddress() || ip.getHostAddress().indexOf(":")!=-1 )
continue;
if( ip.isSiteLocalAddress() ){ //内网IP
localip=ip.getHostAddress();
} else { //外网IP
netip = ip.getHostAddress();
break;
}
}
if( netip!=null )
break;
}
} catch (SocketException e) {
}
if( netip!=null )
return netip;
else if ( localip!=null )
return localip;
String localip=null;//本地IP,如果没有配置外网IP则返回它
String netip=null; //外网IP
try {
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
while( netInterfaces.hasMoreElements() ) {
NetworkInterface ni = netInterfaces.nextElement();
Enumeration<InetAddress> address = ni.getInetAddresses();
while( address.hasMoreElements() ) {
InetAddress ip=address.nextElement();
System.out.println( "interface name: "+ni.getName()
+ "; IP: "+ip.getHostAddress()
+ "; Site local address:"+ip.isSiteLocalAddress()
+ "; Loopback address: "+ip.isLoopbackAddress() );
if( ip.isLoopbackAddress() || ip.getHostAddress().indexOf(":")!=-1 )
continue;
if( ip.isSiteLocalAddress() ){ //内网IP
localip=ip.getHostAddress();
} else { //外网IP
netip = ip.getHostAddress();
break;
}
}
if( netip!=null )
break;
}
} catch (SocketException e) {
}
if( netip!=null )
return netip;
else if ( localip!=null )
return localip;
else
return "127.0.0.1"