2013-07-31 28 views
0

我試圖通過使用gethostbyname做一個網站一個IP解析,這是我得到的錯誤:socket.gaierror:[Ernno 1104]

File "wexec.py", line 39, in hell 
    ipname = socket.gethostbyname('http://%s') % (hcon) 
socket.gaierror: [Errno 11004] getaddrinfo failed 

我試圖修復它,我嘗試(www.youtube.com),然後工作。我不確定我做錯了什麼。但這裏是我的代碼:

def hell(): 

    hcon = raw_input(Fore.RED + Style.BRIGHT + "Website: ") 
    urlopen = urllib2.urlopen('http://%s:80' % (hcon)) 
    ipname = socket.gethostbyname('http://%s') % (hcon) 
    print(strftime("[%H:%M:%S]", gmtime()) + " Found IP: %s " % (ipname)) 
    enter = raw_input("Press enter or any other key to continue.") 

hell() 

那麼我該怎麼做?有人可以幫忙嗎?

回答

0

一開始,你的包圍是稍微偏離。而不是:

ipname = socket.gethostbyname('http://%s') % (hcon) 

它應該是:

ipname = socket.gethostbyname('http://%s' % (hcon)) 

到早盤收盤調用gethostbyname,你防止%s串的發生,意味着格式化這個名字包含字面%s而比值hcon

我也不確定你的主機名是否應該包含http://。主機名與URL不同。您可能想從正面刪除URL類型,在這種情況下,您最好將其簡化爲:

ipname = socket.gethostbyname(hcon) 
+0

我再次遇到同樣的錯誤。 –

+0

@Dave,看到最後一點,我懷疑你需要拋棄'http://'。 – paxdiablo

+0

非常感謝,幫助。 –

0

此行

ipname = socket.gethostbyname('http://%s') % (hcon) 

你傳遞"http://%s"gethostbyname

試試這個:

ipname = socket.gethostbyname('http://%s' % hcon) 
+0

我得到相同的錯誤。 –

+1

'http:// www.youtube.com'是一個URL,而不是主機名。它的主機名部分是'www.youtube.com',並且是'socket.gethostbyname()'想要看到的部分... – twalberg

相關問題