Sto traducendo il nome host in indirizzo IPv4 utilizzando gethostbyname()
di socket
in python. A volte ci vuole un po 'di tempo in più per mostrare l'indirizzo IP. Mi stavo chiedendo se ci sia un valore di timeout predefinito per ogni ricerca. Ecco come sto usando presa nel mio programma-esiste un valore di timeout per socket.gethostbyname (hostname) in python?
try:
addr = socket.gethostbyname(hostname)
except socket.gaierror:
addr = ""
print hostname+" : "+addr
solo bisogno di aggiungere un'altra domanda, c'è qualche possibilità che questo può mancare qualsiasi indirizzo IP? Qualcuno ha avuto esperienza nel convertire un ampio campione di hostname in un indirizzo IP?
Ci non sembra essere un modo per controllare il timeout di 'gethostbyname', ma potresti piuttosto impostare il timeout predefinito dell'oggetto socket con' sock et.setdefaulttimeout (timeout) '. –
@LordHenryWotton che può essere fatto, ma mi chiedo se qualcuno ha trovato una mancata corrispondenza degli indirizzi IP e manca qualsiasi IP utilizzando gethostbyname(). se manca, l'impostazione del valore di timeout lo risolverebbe o meno. – saz
@LordHenryWotton: dubito che 'socket.setdefaulttimeout' influenzi' gethostbyname'. Penso che influenzerà solo le operazioni su socket specifici, cioè lettura, scrittura, connessione. Ma 'socket.gethostbyname' non è un'operazione su un socket specifico ma invece una chiamata di blocco in libc gethostbyname (3). Vedi anche http://www.gossamer-threads.com/lists/python/python/790534 –