用于 NSlookup 结果的 Python 程序

问题描述

我想构建一个 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"))

注意:

在我看来,更好的信息应该是“未使用”/“使用”
“未找到”/“找到”。你的有点混乱。