(Python) gaierror: [Errno 11004] сбой getaddrinfo - PullRequest
0 голосов
/ 08 ноября 2010
from Tkinter import *
import tkMessageBox, socket


root = Tk()
root.title("pynet v1.0")
root.config(bg='black')
root.resizable(0,0)   

text = Text()   
text1 = Text()

text1.config(width=15, height=1)
text1.config(bg="white", fg="red")
text1.pack()

def Info():
    targetip = socket.gethostbyname_ex(text1.get("1.0", END))
    text.insert(END, targetip)

b = Button(root, text="Enter", width=10, height=2, command=Info)
b.config(fg="black", bg="red")
b.pack(side=TOP, padx=5)

scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
text.config(width=25, height=5, bg="white", fg="red")
text.pack(side=LEFT, fill=Y)
scrollbar.config(command=text.yview)
text.config(yscrollcommand=scrollbar.set)

root.mainloop()

Я пытаюсь получить IP-адрес веб-сайта, но постоянно получаю эту ошибку «gaierror: [Errno 11004] getaddrinfo fail» в строке 18, ваша помощь будет оценена, спасибо.

Ошибка:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Users\Rabia\Desktop\gethostinfo.py", line 18, in Info
    targetip = socket.gethostbyname_ex(text1.get("1.0", END))
gaierror: [Errno 11004] getaddrinfo failed

Ответы [ 2 ]

2 голосов
/ 08 ноября 2010

Я предполагаю, что вы используете имя хоста с завершающим переводом строки.Когда я пишу этот ответ, ваш код показывает:

def Info():
    targetip = socket.gethostbyname_ex(text1.get("1.0", END))
    text.insert(END, targetip)

Когда вы используете индекс END, вы получаете дополнительную новую строку, добавляемую текстовым виджетом.Вам нужно убрать это или использовать индекс "end-1c".

1 голос
/ 08 ноября 2010

Почему вы добавляете CRLF (\r\n) к имени хоста, прежде чем искать его?

Если удаление не помогает, распечатайте точный текст, который вы передаете gethostbyname, чтобы убедиться, что это действительное имя хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...