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.