socket.gethostbyname (socket.gethostname ()) fonctionnait bien sous OS X El Capitan. Cependant, cela ne fonctionne plus maintenant, après la mise à jour du Mac sous MacOS Sierra.
Merci!
import socket
socket.gethostbyname(socket.gethostname())
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
socket.gethostbyname(socket.gethostname())
gaierror: [Errno 8] nodename nor servname provided, or not known
Il y a une réponse dans les commentaires de OP basée sur une autre question, Qui nécessite de modifier /etc/hosts
, i.e echo 127.0.0.1 $HOSTNAME >> /etc/hosts
.
Sinon, vous pouvez utiliser socket.gethostbyname('localhost')
, en supposant que localhost
est ce dont vous avez besoin et qu'il est défini dans votre /etc/hosts
.
Même problème tome . Je change le code en:
import socket
socket.gethostbyname("")
Et ça marche maintenant.
J'avais le même problème. Je n'ai pas pu cingler localhost.
ping localhost
>> error ping: cannot resolve localhost: Unknown Host
J'ai changé mon fichier hosts.
Sudo nano/etc/hosts
Ajoutez ceci au fichier (utilisez les tabulations/4 pour séparer >> 127.0.0.1 {tab/4spaces} localhost) Enregistrez-le et redémarrez le terminal.
127.0.0.1 localhost
Pour vérifier si tout fonctionne bien, essayez d’envoyer une requête à votre hôte local.
ping localhost
J'ai eu le même problème aujourd'hui (avec MacOS Mojave) et j'ai pu le résoudre en utilisant le link that @FBL fourni dans les commentaires.
Plus précisément, je devais simplement aller dans Préférences Système -> Partage et activer le partage. (J'ai activé le partage d'imprimante). Ensuite, j'ai vérifié que cela fonctionnait via ping $Host
. Ensuite, j'ai pu désactiver le partage et tout (à la fois ping $Host
et python -c 'import socket; print socket.gethostbysocketname(socket.gethostname())
) fonctionnait toujours.