Comment obtenir les détails IP de la passerelle, il existe une option utilisant wifimanager mais. S'il n'y a aucun moyen de savoir comment trouver la passerelle, le DNS et d'autres détails dans un appareil Android lorsqu'il est connecté à l'aide d'un modem USB.
J'utilise cyanogenMod 7.2 sur Android 2.3.4, puis ouvrez simplement l'émulateur de terminal et tapez:
$ ip addr show
$ ip route show
Je voulais publier cette réponse en tant que mise à jour pour les utilisateurs de versions plus récentes d'Android (CM11/KitKat/4.4.4). Je n'ai pas testé cela avec TouchWiz ni avec les anciennes versions d'Android, donc YMMV.
Les commandes suivantes peuvent être exécutées à tous les endroits habituels (ADB, émulateur de terminal, scripts Shell, Tasker).
Répertoriez toutes les propriétés disponibles:
getprop
Obtenir une interface WiFi:
getprop wifi.interface
Propriétés 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
Les commandes ci-dessus généreront des informations, que le WiFi soit réellement connecté ou non.
Utilisez l'une des méthodes suivantes pour vérifier si wlan0 est activé ou non:
ifconfig wlan0
netcfg | awk '{if ($2=="UP" && $3 != "0.0.0.0/0") isup=1} END {if (! isup) exit 1}'
Utilisez l’une des méthodes suivantes pour obtenir l’adresse IP de wlan0 (uniquement s’il est connecté):
ifconfig wlan0 | awk '{print $3}'
netcfg | awk '/^wlan0/ {sub("(0\\.0\\.0\\.0)?/[0-9]*$", "", $3); print $3}'
Par souci de rigueur, pour obtenir votre adresse IP publique Internet, vous souhaiterez 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
Remarque: La commande awk
mentionnée ci-dessus semble trop compliquée uniquement parce qu'elle est capable de gérer la sortie de différentes versions de nslookup
. Android inclut une version minimale de nslookup
dans busybox
mais il existe également une version autonome (souvent incluse dans dnsutils
).
Sur Android 7 ça marche:
ip route get 8.8.8.8
la sortie sera: 8.8.8.8 via passerelle ...
Aller au terminal
$ adb -s UDID Shell
$ ip addr | grep inet
or
$ netcfg | grep inet
Le serveur DNS est obtenu via
getprop net.dns1
MISE À JOUR: à partir d'Android Nougat 7.x, ifconfig est présent et netcfg est parti. Donc ifconfig peut être utilisé pour trouver l'adresse IP et le masque de réseau.
Installez l'application d'émulateur de terminal, puis pour voir la table de routage exécuter iproute
à partir de la commande Invite. Ne nécessite pas d'autorisations 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 signale pour votre serveur, mais sur mon téléphone, il signale 0.0.0.0
, ce qui n'est pas très utile.
Cette solution vous donnera les paramètres du réseau. Découvrez cette solution