这可能是一个简单的事情,但我还在学习python。 基本上我试图从主机名中提取IP地址,这样可以正常工作,但如果主机没有解决它的错误。我现在有它,所以一旦它解析了IP地址,它就会把它填充到一个文本框中,所以我试图在这里做的就是如果它无法解决...在该文本框中输入一条消息说不主人发现或其他什么。我收到一个错误:" socket.gaierror:[Errno 11004] getaddrinfo failed"当它没有解决时。
这是我的代码:
def findip():
host = hname.get() # Pulls host from text box1
ip = gethostbyname(host)
ipaddress.set(ip) #exports to text box2
return
所以我不知道的是失败所需的If命令(如果有意义的话)它会是这样的:
if "gethostbyname fails"
ipaddress.set("Host does not resolve")
else
ipaddress.set(ip)
答案 0 :(得分:1)
你必须尝试以这种方式捕获异常:
def findip():
host = hname.get()
try:
ip = gethostbyname(host)
except socket.gaierror:
ip = "Host does not resolve"
ipaddress.set(ip)
只需确保导入了socket
模块或者它无法正常工作,如果您不需要socket
模块,则只能导入例外,因此您需要做其中任何一个:
import socket
import socket.gaierror