问题描述
我想构建一个 Python 程序来检查 NSlookup
结果。
在我的程序中,我想输出如下:-
- 如果我输入
google
那么它会显示“not unique”作为输出,但是 - 当我提供像
Rajat
这样的输入时,输出将是唯一的,因为rajat.com
不是一个有效的站点(无效的 URL,没有 IP 与此 URL 相关联)立>
下面是我的代码。当我输入 google 时,此代码将显示不是唯一的,但在我输入 Rajat
时会抛出错误。
所以我只想知道如何处理这个错误,或者当程序抛出错误时我们如何使输出唯一。
import socket
dns=input("Enter DNS: ")
result= socket.gethostbyname(dns+".com")
if not result:
print("Unique")
else:
print("Not Unique")
解决方法
您可以使用 try
-except
来捕获错误。在此代码片段中,我们尝试连接到给定的域,如果连接成功(网站存在),则打印 Not unique
,否则打印 Unique
。
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
dns = input("Enter DNS: ")
try:
s.connect((dns + ".com",80))
except Exception as e:
print("Unique")
else:
print("Not unique")
,
如果未找到给定的主机名,gethostbyname()
函数会引发 socket.gaierror
异常,因此您有机会捕获它并执行您想要的操作:
import socket
dns=input("Enter DNS: ")
try:
result= socket.gethostbyname(dns + ".com")
except socket.gaierror:
print("Unique")
else:
print("Not Unique"))
注意:
在我看来,更好的信息应该是“未使用”/“使用”或
“未找到”/“找到”。你的有点混乱。