2010-04-04 29 views
38

मैं एक आईपी पता दिए गए होस्टनाम को कैसे देख सकता हूं? इसके अलावा, यदि कोई ऐसी रिवर्स DNS प्रविष्टि मौजूद नहीं है, तो मैं टाइमआउट कैसे निर्दिष्ट कर सकता हूं? जितनी जल्दी हो सके चीजों को रखने की कोशिश कर रहा है। या कोई बेहतर तरीका है? धन्यवाद!आईपी से पाइथन लुकअप होस्टनाम 1 सेकंड टाइमआउट

उत्तर

61
>>> import socket 
>>> socket.gethostbyaddr("69.59.196.211") 
('stackoverflow.com', ['211.196.59.69.in-addr.arpa'], ['69.59.196.211']) 

फ़ंक्शन पर टाइमआउट लागू करने के लिए, this stackoverflow thread पर इसका उत्तर है।

+0

'http: //1.0.1.0/blah/blahm.html' जैसी चीज़ों के बारे में क्या? –

+4

@ Eiyrioü von Kauyf: यह सवाल नहीं पूछा गया था (एक आईपी पता निर्दिष्ट करते समय एक होस्टनाम लौटाएं)। – ChristopheD

+0

यह वही प्रश्न है - हालांकि मैं पूछ रहा हूं कि आपके पास इसे सामान्य करने के लिए एक सुझाव दिया गया है और socket.gethostbyaddr ("1.0.1.0") या पसंद है? यह वही सवाल है लेकिन इनपुट प्रारूप अलग है - gethostbyaddr को सामान्यीकृत इनपुट पसंद नहीं है। –

10

जो आप पूरा करने की कोशिश कर रहे हैं उसे रिवर्स DNS लुकअप कहा जाता है।

socket.gethostbyaddr("IP") 
# => (hostname, alias-list, IP) 

http://docs.python.org/library/socket.html?highlight=gethostbyaddr#socket.gethostbyaddr

हालांकि, टाइमआउट भाग के लिए मैं इस के साथ समस्याओं में चल रहे लोगों के बारे में पढ़ा है। मैं अधिक उन्नत उपचार के लिए PyDNS या this समाधान की जांच करूंगा।