¿Cómo puedo obtener mi dirección IP?
Tengo un serverSocket y me gustaría saber la dirección IP, pero con
listenSocket.getInetAddress().toString();
Me sale 0.0.0.0 . ¿Cómo puedo obtener la dirección IP, o (si hay dos conexiones habilitadas) una de ellas?
- Socket timeout usando android marshmallow. Android <6 funciona. ¿Ha cambiado algo?
- Cliente de Android enviar archivos grandes utilizando Socket, el archivo recibido por el servidor es incompleta
- Android illegalxception
- Apache HttpClient 4.0 falla en el tiempo de espera para socket en Android
- Android: ¿Cómo usar Gottox / socket.io-java-cliente de la biblioteca con la forma correcta?
- Recuperar mediante programación los datos de uso de la red de etiquetas en Android
- AsyncSocket en java?
- Recibir mensaje de difusión en Android
- Tecnología para aplicaciones como teamviewer en android
- Android java.net.SocketException: socket failed: EACCES (Permiso denegado)
- ¿Cómo se puede forzar una descarga en un objeto OutputStream sin cerrarlo?
- Cliente SSL en Android
- Cómo implementar un servidor HTTP en android
He utilizado esto en el pasado:
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(); } } } } catch (SocketException ex) { Log.e(LOG_TAG, ex.toString()); } return null; }
Fuente: http://www.droidnova.com/get-the-ip-address-of-your-device304.html
Compruebe esto ¿Cómo obtener la dirección IP del dispositivo desde el código? Consiguiendo las necesidades del ipaddress que siguen cheque también InetAddressUtils.isIPv4Address (sAddr);
Si obtiene 0.0.0.0, es probable que su socket de escucha esté aceptando conexiones en todas las interfaces de la máquina. Normalmente habrá al menos dos de ellos – uno para comunicarse con el mundo exterior, y la interfaz localhost / loopback. Así que no tiene sentido pedirle una dirección.
Una vez que acepta una conexión entrante, puede pedirle la dirección de la interfaz en particular que la maneja.
Un truco rápido para encontrar una "buena" dirección IP es hacer una conexión de salida a un sitio conocido, y pedir la dirección de su final local una vez que se conecta.Esto es algo más portátil que enumerar interfaces de red (si te importa Cosas), pero por supuesto requiere que usted tiene algo para conectarse a lo que usted confía para estar vivo y accesible.