16 votes

Le terminal Android n'est pas capable de nslookup ?

Chaque fois que j'essaie d'accéder par telnet à un domaine sur mon LG Ally, cela échoue, mais cela fonctionne si j'utilise une adresse IP. J'ai donc essayé d'utiliser nslookup telehack.com et il revient :

Server:       0.0.0.0
Address 1:    0.0.0.0

nslookup: can't resolve 'telehack.com'

J'ai Émulateur de terminal Android y BusyBox installé,

Cela ne fonctionnait pas avec le dns par défaut, donc maintenant j'ai mis mes entrées dns à OpenDNS et ça ne se résout toujours pas.

Y a-t-il quelque chose que je puisse faire pour résoudre ce problème, ou est-ce une limitation de l'Ally ?

4voto

Il s'agit d'un problème de conception connu lors de l'utilisation de libresolv et de glibc liés statiquement.

Vous avez deux options :

  1. Utilisez la bibliothèque native libc Bionic de Google Android au lieu de la glibc.

  2. Construire busybox pour rechercher les bibliothèques dans /system/lib (ou faire les liens nécessaires, par exemple. /usr/lib -> /system/lib ). Placez ld-linux.so.3, libc.so.6, libresolv.so.2, libnss_dns.so.2 dans votre fichier /system/lib .

2voto

Mikah Points 41

Entrez votre terminal, puis tapez 'su' et appuyez sur la touche Entrée (attention, cela ne fonctionne que si vous avez un téléphone rooté)

$ su
#

puis entrez ce qui suit (remplacez x.x.x.x par l'ip de vos serveurs dns)

# echo 'nameserver x.x.x.x' > /system/etc/resolv.conf
# echo 'nameserver x.x.x.x' >> /system/etc/resolv.conf
# exit

Maintenant, testez pour voir si cela a fonctionné correctement

$ nslookup google.com

Cela devrait se résoudre maintenant.

1voto

Chris Roberts Points 7543

Vérifiez que l'environnement de votre émulateur de terminal a correctement configuré le DNS en exécutant getprop net.dns1 et, si nécessaire, le régler avec setprop net.dns1 [yourdns] . Les commandes peuvent varier d'un appareil à l'autre. net.eth0.dns1 o net.gprs.dns1 courir getprop sans paramètres pour voir toutes les propriétés définies pour les indices.

1voto

Hosh Sadiq Points 111

J'ai copié (et légèrement modifié) ma réponse à partir d'un commentaire que j'ai posté sur un problème sur la page de code Google pour Terminal IDE, mais elle devrait être la même :

Si vous êtes rooté, vous pouvez installer la dernière version de busybox (vous pourrez peut-être la compiler). Ensuite, trouvez où se trouve votre busybox mis à jour et exécutez les commandes suivantes : (je suppose que la nouvelle version se trouve à /system/bin et l'ancienne version est dans ~/system/bin )

PATH=/system/bin:$PATH
cd ~/system/bin
mv busybox busybox.old
ln -s /system/bin/busybox busybox

Maintenant les domaines seront résolus correctement.

Veuillez noter qu'en raison du mode de fonctionnement de busybox, vous devez être Root pour pouvoir utiliser ping (bien que des choses comme wget y nslookup devrait être capable de résoudre les hôtes correctement maintenant). Les développeurs de busybox travaillent sur ce problème.

J'ai personnellement utilisé cette application pour installer la dernière version : https://play.google.com/store/apps/details?id=stericson.busybox

0voto

Johan Soderberg Points 976

Quel réseau utilisez-vous ? Si c'est du Wifi, les autres machines de votre réseau peuvent-elles le contacter ? Si c'est le plan de données de l'opérateur... est-il bloqué ?

Mise à jour : 0.0.0.0 me semble être un blocage du fichier hosts. Des bloqueurs de publicité ? Adblock plus ? Des modifications du fichier Hosts ?

Essayez le réseau USB - si vous postez un commentaire ici pour le demander, je mettrai à jour la question et mettrai un tutoriel (c'est compliqué, et je ne sais comment le faire que sur des machines GNU/Linux).

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X