¿Cómo utilizan las computadoras en la LAN el código Java para obtener la IP de salida?
public static void main(String[] args) lanza SocketException {
System.out.println(GetRealIp.getRealIp());
}
public static String getRealIp() throws SocketException {
String localip = null // IP local, si no se configura ninguna IP externa, devuelve la IP local
String netip = null; // IP de red externa
Enumerationlt; netInterfaces =
NetworkInterface.NetInterfaces()
NetworkInterfaces.NetInterfaces( )
NetworkInterfaces.NetInterfaces()nextElement();
Enumerationlt; InetAddressgt; dirección = ni.getInetAddresses(); ) ) {
ip = dirección.nextElement();
if (!ip.isSiteLocalAddress())
amp;amp !ip.isLoopbackAddress( )
amp;amp; ip.getHostAddress().indexOf(":") == -1) {// IP de extranet
netip = ip.getHostAddress().indexOf ( ":") == -1) {// IP de extranet
Netip = ip.getHostAddress().indexOf(":") == -1)getHostAddress();
finded = true;
romper;
} else if (ip.isSiteLocalAddress()
amp; !ip.isLoopbackAddress()
amp;amp; ip.getHostAddress().indexOf(":" == -1) {//IP de red externa
netip = ip.getHostAddress ().indexOf(":" ) == -1) {// IP de la intranet
localip = ip.getHostAddress();
}
}
}
si (netip! = null amp !"" .equals(netip)){
return netip;
} else {
return localip;
}
p>
}
Yo mismo escribí uno para ayudarte a implementarlo, espero que te sea útil
.