2011-06-09 16 views
21

Cómo obtener los detalles de IP de la puerta de enlace, Existe la opción de usar wifimanager pero. Si no hay información sobre cómo encontrar gateway, dns y otros detalles en el dispositivo Android cuando esté conectado usando usb tethering.Obtener la dirección IP de la puerta de enlace en android

+0

puede intentar la solución aportada en el enlace, proporcionado por Muhammad Zeeshan. o puede implementar un rastreo http utilizando el siguiente método ... [HTTP Trace] (http://developer.android.com/reference/org/apache/http/client/methods/HttpTrace.html#HttpTrace%28java.net .URI% 29) –

+1

También puede usar [RoutetoHost] (http://developer.android.com/reference/android/net/ConnectivityManager.html#requestRouteToHost%28int,%20int%29) esto le da la ruta al host , la primera dirección IP sería la Puerta de enlace (si no se utiliza el Proxy). –

+0

Investigue el [Administrador de conectividad] (http://developer.android.com/reference/android/net/ConnectivityManager.html) –

Respuesta

0

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

+3

La solución a la que se refiere utiliza wifimanager que no funciona cuando el dispositivo no está conectado a wify. cómo encontrar estos detalles cuando el dispositivo está conectado por usb tethering oa través de gprs. – Himanshu

21

estoy usando CyanogenMod 7.2 en Android 2.3.4, emulador de terminal a continuación, sólo abierta y tipo:

$ ip addr show 
$ ip route show 
+0

Para Android 4.4 kitkat también utilicé la aplicación Terminal emulator y escribí los comandos proporcionados aquí. funciona. – skstar

+0

Lollipop 5.0.1. Funciona para mí también. – JoelAZ

0

Instalar aplicación de emulación de terminal, a continuación, para ver la tabla de enrutamiento de ejecución del comando iproute rápido. No requiere permisos de root. No sé cómo obtener el servidor DNS. No hay archivo /etc/resolv.conf. 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.

2

servidor DNS se obtiene a través de

getprop net.dns1 

Actualización: A partir de Android Turrón 7.x, ifconfig está presente, y netcfg se ha ido. Entonces ifconfig se puede usar para encontrar la IP y la máscara de red.

+0

¿Qué tiene eso que ver con la dirección de la puerta de enlace? – rakslice

+3

"Si no hay [Wifi] cómo encontrar la puerta de enlace, DNS y otros detalles" de la OP ... Ninguna de las otras respuestas proporcionó ese detalle. – kevinf

+0

¿cómo es que esto enumera los servidores DNS? No quiero que mi dispositivo use (IPv6) y parece preferir utilizar estos en lugar de las entradas dhcp.wlan0.dns * que debería estar usando. – Michael

4

Ir al terminal

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

Esta publicación se marca automáticamente como de baja calidad porque es solo código. ¿Lo ampliaría agregando algo de texto para explicar cómo funciona/cómo resuelve el problema? – gung

+0

@gung no es así. Esa es solo la dirección IP autoasignada, no la dirección de la puerta de enlace ... –

12

Yo quería publicar esta respuesta como una actualización para los usuarios de Android más reciente se basa (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, emulador de terminal, scripts de shell, Tasker).

Lista de todas las propiedades disponibles:

getprop 

obtener la interfaz Wi-Fi:

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 se información de salida, independientemente de si Wi-Fi está realmente conectado en el momento.

Utilice cualquiera de los siguientes para comprobar si wlan0 está encendido o no:

ifconfig wlan0 

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

Utilice cualquiera de los siguientes para obtener la dirección IP del wlan0 (sólo si está conectado):

ifconfig wlan0 | awk '{print $3}' 

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

Solo por minuciosidad, para obtener su dirección IP pública orientada a Internet, querrá usar 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 para obtener el 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: Lo anterior awk comando parece demasiado complicado solo porque es capaz de manejar el resultado 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).

+0

Android 7.0 no tiene 'getprop dhcp' –

1

En Android 7 obras que:

ip route get 8.8.8.8 

salida será: 8.8.8.8 través de la pasarela ...

Cuestiones relacionadas