Obtener la dirección IP de la puerta de enlace en android

Cómo obtener detalles de IP de la puerta de enlace, hay una opción con wifimanager pero. Si no hay wify cómo encontrar la puerta de enlace, dns y otros detalles en el dispositivo android cuando está conectado usando el tethering del usb.

Estoy usando cyanogenmod 7.2 en android 2.3.4, a continuación, simplemente abra el emulador de terminal y el tipo:

$ ip addr show $ ip route show 

Quería publicar esta respuesta como una actualización para los usuarios de las compilaciones Android más recientes (CM11 / KitKat / 4.4.4). No he probado nada de esto con TouchWiz o versiones anteriores de Android para YMMV.

Los siguientes comandos se pueden ejecutar en todos los lugares habituales (ADB, Terminal Emulator, shell scripts, Tasker).

Listar todas las propiedades disponibles:

 getprop 

Obtenga la interfaz WiFi:

 getprop wifi.interface 

Propiedades WiFi:

 getprop dhcp.wlan0.dns1 getprop dhcp.wlan0.dns2 getprop dhcp.wlan0.dns3 getprop dhcp.wlan0.dns4 getprop dhcp.wlan0.domain getprop dhcp.wlan0.gateway getprop dhcp.wlan0.ipaddress getprop dhcp.wlan0.mask 

Los comandos anteriores mostrarán información independientemente de si WiFi está realmente conectado en ese momento.

Use cualquiera de las siguientes opciones para verificar si wlan0 está activado o no:

 ifconfig wlan0 netcfg | awk '{if ($2=="UP" && $3 != "0.0.0.0/0") isup=1} END {if (! isup) exit 1}' 

Utilice una de las siguientes opciones para obtener la dirección IP de wlan0 (sólo si está conectada):

 ifconfig wlan0 | awk '{print $3}' netcfg | awk '/^wlan0/ {sub("(0\\.0\\.0\\.0)?/[0-9]*$", "", $3); print $3}' 

Sólo por su minuciosidad, para obtener su dirección de Internet pública frente a IP, que va a querer utilizar un servicio externo. Para obtener su IP pública:

 wget -qO- 'http://ipecho.net/plain' 

Para obtener su nombre de host público:

 wget -qO- 'http://ifconfig.me/host' 

O bien para obtener su nombre de host público directamente desde su dirección IP:

 (nslookup "$(wget -qO- http://ipecho.net/plain)" | awk '/^Address 1: / { if ($NF != "0.0.0.0") {print $NF; exit}}; /name =/ {sub("\\.$", "", $NF); print $NF; exit}') 2>/dev/null 

Nota: El comando de awk mencionado anteriormente parece demasiado complicado sólo porque es capaz de manejar la salida de varias versiones de nslookup . Android incluye una versión mínima de nslookup como parte de busybox pero también hay una versión independiente (a menudo incluida en dnsutils ).

Ir al terminal

 $ adb -s UDID shell $ ip addr | grep inet or $ netcfg | grep inet 

Servidor DNS se obtiene mediante

 getprop net.dns1 

ACTUALIZACIÓN: a partir de Android Nougat 7.x, ifconfig está presente, y netcfg se ha ido. Así que ifconfig se puede usar para encontrar la IP y la máscara de red.

Esta solución le dará los parámetros de red. Echa un vistazo a esta solución

Instalar la aplicación emulador de terminal y, a continuación, ver tabla de enrutamiento ejecutar iproute desde el símbolo del sistema. No requiere permisos de root. No sé cómo conseguir el servidor de DNS. No hay /etc/resolv.conf archivo /etc/resolv.conf . Usted puede probar nslookup www.google.com y ver lo que informa para su servidor, pero en mi teléfono informa 0.0.0.0 que no es demasiado útil.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.