Obtenir l'adresse ip de la passerelle dans android
7 réponses
j'utilise cyanogenmod 7.2 sur android 2.3.4, puis ouvrez l'émulateur de terminal et tapez:
$ ip addr show
$ ip route show
je voulais poster cette réponse comme une mise à jour pour les utilisateurs de constructions Android plus récentes (CM11/KitKat/4.4.4). Je n'ai pas testé tout cela avec TouchWiz ou des versions plus anciennes D'Android donc YMMV.
les commandes suivantes peuvent être exécutées à tous les endroits habituels (Bad, émulateur de Terminal, scripts shell, Tasker).
énumérer toutes les propriétés disponibles:
getprop
Obtenir une interface wi-fi:
getprop wifi.interface
WiFi propriétés:
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
les commandes ci-dessus vont produire des informations indépendamment du fait que le WiFi est réellement connecté à l'époque.
utilisez l'un des éléments suivants pour vérifier si wlan0 est allumé ou non:
ifconfig wlan0
netcfg | awk '{if (=="UP" && != "0.0.0.0/0") isup=1} END {if (! isup) exit 1}'
utilisez l'une des options suivantes pour obtenir l'adresse IP de wlan0 (seulement si elle est connectée):
ifconfig wlan0 | awk '{print }'
netcfg | awk '/^wlan0/ {sub("(0\.0\.0\.0)?/[0-9]*$", "", ); print }'
juste pour la minutie, pour obtenir votre adresse IP Internet publique, vous allez vouloir utiliser un service externe. Pour obtenir votre adresse IP publique:
wget -qO- 'http://ipecho.net/plain'
pour obtenir votre nom d'hôte public:
wget -qO- 'http://ifconfig.me/host'
ou pour obtenir votre nom d'hôte public directement à partir de votre adresse 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
Note: la commande susmentionnée awk
semble excessivement compliquée uniquement parce qu'elle est capable de gérer la sortie de différentes versions de nslookup
. Android comprend une version minimale de nslookup
dans le cadre de busybox
, mais il existe une version autonome aussi (souvent inclus dans dnsutils
).
aller au terminal
$ adb -s UDID shell
$ ip addr | grep inet
or
$ netcfg | grep inet
sur Android 7 fonctionne:
ip route get 8.8.8.8
sortie sera: 8.8.8.8 par passerelle...
le serveur DNS est obtenu via
getprop net.dns1
UPDATE: as of Android Nougat 7.x, ifconfig est présent, et netcfg est allé. Donc ifconfig peut être utilisé pour trouver L'IP et le masque de réseau.
cette solution vous donnera les paramètres du réseau. Regardez ce solution
installez l'application d'émulateur de terminal, puis pour voir la table de routage, Lancez iproute
à partir de l'invite de commande. Ne nécessite pas les droits root. Je ne sais pas comment obtenir le serveur DNS. Il n'y a pas de fichier /etc/resolv.conf
. Vous pouvez essayer nslookup www.google.com
et voir ce qu'il indique pour votre serveur, mais sur mon téléphone, c'rapports 0.0.0.0
qui n'est pas trop utile.