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在第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
答案 0 :(得分:2)
我的猜测是因为您使用的是具有尾随换行符的主机名。在我写这个答案的时候,你的代码显示:
def Info():
targetip = socket.gethostbyname_ex(text1.get("1.0", END))
text.insert(END, targetip)
使用索引END
时,您将获得文本小部件添加的额外换行符。您需要将其删除或使用索引"end-1c"
。
答案 1 :(得分:1)
为什么要在查找之前将CRLF(\r\n
)添加到主机名?
如果删除不能修复它,请打印出您传递给gethostbyname的确切文本,以确保它是有效的主机名。