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.