2013-07-31 3 views
0

Я кодировал простую программу на python, которая позволяет вам найти IP-адрес URL-адреса. Я получаю эту ошибку:Python: ошибка gethostbyname

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

Теперь я не уверен, что я сделал неправильно, но вот мой код функции:

def hell(): 

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

hell() 

Как вы можете видеть. Я открываю HTTP-соединение с веб-сайтом, а затем открываю URL-адрес с urllibb, а затем получаю IP-адрес веб-сайта. Но, как вы можете видеть, я не уверен, что я делаю неправильно. Может кто-нибудь помочь?

ответ

0

socket.gethostbyname() принимает только доменное имя, поэтому вам нужно отбросить «http: //» от этого вызова. Я не понимаю, какие вызовы httplib и urllib делают, но они кажутся ненужными из этого фрагмента.