Come posso cercare un nome host dato un indirizzo IP? Inoltre, come posso specificare un timeout nel caso in cui non esista una voce DNS inversa? Cercando di mantenere le cose il più velocemente possibile. O c'è un modo migliore? Grazie!Nome host di ricerca Python da IP con 1 secondo timeout
38
A
risposta
61
>>> import socket
>>> socket.gethostbyaddr("69.59.196.211")
('stackoverflow.com', ['211.196.59.69.in-addr.arpa'], ['69.59.196.211'])
Per l'implementazione del timeout sulla funzione, this stackoverflow thread ha risposte su questo.
10
Quello che stai cercando di ottenere è chiamato ricerca DNS inversa.
socket.gethostbyaddr("IP")
# => (hostname, alias-list, IP)
http://docs.python.org/library/socket.html?highlight=gethostbyaddr#socket.gethostbyaddr
Tuttavia, per la parte di timeout che ho letto su persone in esecuzione in problemi con questo. Vorrei verificare PyDNS o this soluzione per un trattamento più avanzato.
e qualcosa di simile a "http: /1.0.1.0/blah/blahm.html"? –
@ Eiyrioü von Kauyf: Questa non era la domanda posta (restituire un nome host quando specificato un indirizzo IP). – ChristopheD
è la stessa domanda - tuttavia ti sto chiedendo hai un modo suggerito per normalizzarlo e fare socket.gethostbyaddr ("1.0.1.0") o qualcosa di simile? È la stessa domanda, ma il formato di input è diverso: a gethostbyaddr non piace l'input non normalizzato. –