socket.gethostbyname (socket.gethostname ()) hat auf OS X El Capitan gut funktioniert. Es funktioniert jedoch jetzt nicht mehr, nachdem der Mac auf macOS Sierra aktualisiert wurde.
Vielen Dank!
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
In den Kommentaren von OP gibt es eine Antwort auf der Grundlage von einer anderen Frage, , Die zur Bearbeitung von /etc/hosts
, d. H. echo 127.0.0.1 $HOSTNAME >> /etc/hosts
, erforderlich ist.
Alternativ können Sie socket.gethostbyname('localhost')
verwenden, vorausgesetzt, dass localhost
das ist, was Sie benötigen und in Ihrem /etc/hosts
definiert sind.
Dasselbe Problem tome . Ich ändere den Code in:
import socket
socket.gethostbyname("")
Und es funktioniert jetzt.
Ich hatte das gleiche Problem. Ich konnte Localhost nicht anpingen.
ping localhost
>> error ping: cannot resolve localhost: Unknown Host
Ich habe meine Hosts-Datei geändert.
Sudo nano/etc/hosts
Fügen Sie dies der Datei hinzu (verwenden Sie Tab/4 Leerzeichen, um >> 127.0.0.1 {tab/4spaces} localhost zu trennen). Speichern Sie es und starten Sie das Terminal neu.
127.0.0.1 localhost
Um zu überprüfen, ob alles gut funktioniert, versuchen Sie es mit Ihrem localhost
ping localhost
Ich hatte heute das gleiche Problem (mit MacOS Mojave) und konnte es mithilfe des in den Kommentaren bereitgestellten link that @FBL beheben.
Insbesondere musste ich einfach auf Systemeinstellungen -> Freigeben gehen und die Freigabe aktivieren. (Ich habe die Druckerfreigabe aktiviert). Dann habe ich über ping $Host
überprüft, dass es funktioniert. Danach konnte ich die Freigabe wieder deaktivieren und alles (sowohl ping $Host
als auch python -c 'import socket; print socket.gethostbysocketname(socket.gethostname())
) funktionierte weiterhin.