Pregunta

estoy usando KSOAP2-Android Y necesito obtener la dirección IP usando Java para no tener que escribirla manualmente cada vez.

Lo que quiero decir con dirección IP es, por ejemplo, si lo hago ipconfig Usando el shell de comando:
Sufijo DNS específico de conexión. :
Enlace Local-Local IPv6. . . . . : f0 :: ed2: e3bf: 8206: 44%13
Dirección IPv4. . . . . . . . . . . : 192.168.1.107 <-este
Máscara de subred . . . . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada . . . . . . . . . : 192.168.1.1

La cosa es que estoy desarrollando una aplicación Android, y el emulador tiene un tipo diferente de IP que la máquina.
Necesito obtener la IP de la máquina, ¿cómo se puede hacer esto?

muchas gracias

¿Fue útil?

Solución

public String getLocalIpAddress() {
        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf
                        .getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                        return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
            Log.e(tag, ex.toString());
        }
        return "";
    }

Otros consejos

Para obtener el iPaddress de su dispositivo Android, usa este código.

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);

public String intToIp(int i) {

   return ((i >> 24 ) & 0xFF ) + "." +
               ((i >> 16 ) & 0xFF) + "." +
               ((i >> 8 ) & 0xFF) + "." +
               ( i & 0xFF) ;
}

Prueba este enlace

http://www.droidnova.com/get-the-ip-address-of-your-device,304.html

También puedes probar este comando ADB Shell NetCFG

InetAddress iA=InetAddress.getLocalHost();
System.out.println(iA.getHostAddress());

Ver también

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top