Ich übersetze Hostname in IPv4-Adresse mit gethostbyname()
von socket
in Python. Manchmal dauert es etwas länger, bis die IP-Adresse angezeigt wird. Ich habe mich gefragt, ob es für jede Suche einen Standard-Timeout-Wert gibt. Hier ist, wie ich bin mit Buchse in meinem Programm-Gibt es einen Timeout-Wert für socket.Gethostbyname (Hostname) in Python?
try:
addr = socket.gethostbyname(hostname)
except socket.gaierror:
addr = ""
print hostname+" : "+addr
Nur muß eine andere Frage hinzuzufügen, gibt es eine Chance, dass diese beliebige IP-Adresse verfehlen? Hatte jemand Erfahrung damit, große Beispiele von Hostnamen in IP-Adressen umzuwandeln?
Es scheint keine Möglichkeit zu sein, das Timeout von 'gethostbyname' zu steuern, aber Sie könnten lieber das Standard-Timeout des Socket-Objekts mit' sock 'setzen et.setdefaulttimeout (timeout) '. –
@LordHenryWotton das kann getan werden, aber ich frage mich, ob jemand IP-Adressen nicht übereinstimmte und es vermisst jede IP-Adresse mit gethostbyname(). Wenn es fehlschlägt, dann würde die Einstellung des Timeout-Wertes es lösen oder nicht. – saz
@LordHenryWotton: Ich bezweifle, dass 'socket.setdefaulttimeout' 'gethostbyname' betrifft. Ich denke, es wird nur Operationen an bestimmten Sockets beeinflussen, also lesen, schreiben, verbinden. Aber 'socket.gethostbyname' ist keine Operation auf einem bestimmten Socket, sondern ein blockierender Aufruf in libc gethostbyname (3). Siehe auch http://www.gossamer-threads.com/lists/python/python/790534 –