Red de conocimiento informático - Conocimiento informático - ¿Cómo utilizan las computadoras en la LAN el código Java para obtener la IP de salida?

¿Cómo utilizan las computadoras en la LAN el código Java para obtener la IP de salida?

clase pública GetRealIp {

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

.