¿Hay alguna forma de obtener la dirección IP (v4) de una interfaz en el sistema de archivos de Android? Sé que podría usar ifconfig o netcfg, pero me gustaría usar una herramienta de monitoreo que solo pueda acceder a archivos y no ejecutar comandos.
No tengo Android para probarlo, pero Linux ofrece:
cat /proc/net/fib_trie
La salida se puede filtrar aún más por grep, por ejemplo
cat /proc/net/fib_trie|grep '|--' | grep -vE ' 127|\.0[^0-9.]*$|\.255[^0-9.]*$'
Según una publicación en SO , cat /proc/net/tcp
lo devolverá en
la segunda columna, con el encabezado "local_address", por ejemplo, "CF00A8C0:0203".
La parte después de ":" es un número de puerto.
Del resto, use los dos últimos (C0) como un número hexadecimal, por ejemplo, C0 es 192, que es el comienzo de la dirección en este ejemplo.
Más:
La dirección IP se muestra como un número hexadecimal de cuatro bytes little-endian; es decir, el byte menos significativo aparece primero, por lo que deberá invertir el orden de los bytes para convertirlo en una dirección IP.
El número de puerto es un número hexadecimal simple de dos bytes.
AlvaHenrik
AlvaHenrik
izzy
/proc/net/arp
, pero no estoy seguro de si eso tiene la misma restricción. Lo que debería funcionar, sin embargo, es mirar la información del dispositivo en/proc/net/dev
y elegir la interfaz deseada (por ejemplo,tiwlan0
para WiFi en la mayoría de los casos).AlvaHenrik
izzy
ls
encendido/proc/net
(y/sys/...
) para buscar candidatos prometedores.usuario938500
izzy
/proc/net/tcp
contiene algo (remote_addr es 0.0.0.0, por lo que está "inactivo"), nuevamente usando valores hexadecimales (como se describe en mi respuesta). En mi caso0100007F
comolocal_address
, que coincide127.0.0.1
con aka localhost. ¿Parece que eso es lo que buscas?