Obtenga el ipaddress de la computadora en un proyecto de Android usando Java
-
24-10-2019 - |
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
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