gethostbyname 失败后如何 return "Host is not resolvable" 消息
How to return "Host is not resolvable" message after gethostbyname failure
这可能很简单,但我仍在学习 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)
你必须尝试捕获异常,这样:
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
这可能很简单,但我仍在学习 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)
你必须尝试捕获异常,这样:
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