[Java]
For (Enumeration <NetworkInterface> en = NetworkInterface
. GetNetworkInterfaces (); en. hasMoreElements ();){
NetworkInterface intf = en. nextElement ();
<Span style = "color: # ff0000;"> <span style = "background-color: rgb (255,255,255);"> <span> if (intf. getName (). toLowerCase (). equals ("eth0") | intf. getName (). toLowerCase (). equals ("wlan0") </span> {
For (Enumeration <InetAddress> enumIpAddr = intf. getInetAddresses (); enumIpAddr. hasMoreElements ();){
InetAddress inetAddress = enumIpAddr. nextElement ();
If (! InetAddress. isLoopbackAddress ()){
Ipaddress = inetAddress. getHostAddress (). toString ();
<Span style = "color: #33cc00;"> if (! Ipaddress. contains (":") {// ipV6 address
</Span> return ipaddress;
}
}
}
} Else {
Continue;
}
}
For (Enumeration <NetworkInterface> en = NetworkInterface
. GetNetworkInterfaces (); en. hasMoreElements ();){
NetworkInterface intf = en. nextElement ();
<Span style = "color: # ff0000;"> <span style = "background-color: rgb (255,255,255);"> <span> if (intf. getName (). toLowerCase (). equals ("eth0") | intf. getName (). toLowerCase (). equals ("wlan0") </span> {
For (Enumeration <InetAddress> enumIpAddr = intf. getInetAddresses (); enumIpAddr. hasMoreElements ();){
InetAddress inetAddress = enumIpAddr. nextElement ();
If (! InetAddress. isLoopbackAddress ()){
Ipaddress = inetAddress. getHostAddress (). toString ();
<Span style = "color: #33cc00;"> if (! Ipaddress. contains (":") {// ipV6 address
</Span> return ipaddress;
}
}
}
} Else {
Continue;
}
}
In red, only ip addresses in wireless and wired networks are filtered. networkInterface has many names, such as sim0, remt1.... and so on. www.2cto.com is directly filtered out without any need.
In green, the ipv6 address is filtered out. whether wireless or wired, the address displayed here is: fe80: 288: 88ff: fe00: 1% eth0 fe80: ee17: 2fff: fece: c0b4 % wlan0 usually appears in the first loop. the second cycle is the actual ipv4 address.
Author: agods