Public classIptool { Public Static voidMain (string[] args) {Iptool Iptool=NewIptool (); System.out.println (Iptool.getlocalip ()); } /*** * To determine whether the previous operation is Windows. * * @returntrue---is the Windows operation system*/ Private BooleanIswindowsos () {BooleanIswindowsos =false; String Osname= System.getproperty ("Os.name"); if(Osname.tolowercase (). IndexOf ("Windows") >-1) {Iswindowsos=true; } returnIswindowsos; } /*** * Access to the IP address of the machine, and the automatic division of Windows or Linux operating system * * *@returnString*/ Publicstring Getlocalip () {string SIP= ""; InetAddress IP=NULL; Try { //if the Windows operating system if(Iswindowsos ()) {IP=Inetaddress.getlocalhost (); } //if the Linux operating system Else { BooleanBfindip =false; Enumeration<NetworkInterface> netinterfaces = (enumeration<networkinterface>) NetworkInterface. getnetworkinterfaces (); while(Netinterfaces.hasmoreelements ()) {if(BFINDIP) { Break; } networkinterface ni=(NetworkInterface) netinterfaces. Nextelement (); //----------specific situation, you can consider using Ni.getname to judge//all over the IPenumeration<inetaddress> ips =ni.getinetaddresses (); while(Ips.hasmoreelements ()) {IP=(inetaddress) ips.nextelement (); if(Ip.issitelocaladdress () &&!ip.isloopbackaddress ()//127. The Lookback address is the beginning.&& ip.gethostaddress (). IndexOf (":") = =-1) {Bfindip=true; Break; } } } } } Catch(Exception e) {e.printstacktrace (); } if(NULL!=IP) {SIP=ip.gethostaddress (); } returnSIP; }}
Java code get IP address