【问题标题】:Python program for NSlookup resultNSlookup 结果的 Python 程序
【发布时间】:2020-12-21 21:36:13
【问题描述】:

我想构建一个 Python 程序来检查 NSlookup 结果。

在我的程序中,我想输出如下:-

  • 如果我输入google,那么它会显示“不是唯一的”作为输出,但是
  • 当我提供像 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")

【问题讨论】:

  • Rajat.com 的地址为 72.52.179.174。用别的东西。 ;-)

标签: python sockets nslookup


【解决方案1】:

如果找不到给定的主机名,gethostbyname() 函数会引发 socket.gaierror 异常,因此您有机会捕获它并执行您想要的操作:

import socket

dns=input("Enter DNS:  ")

try:
    result= socket.gethostbyname(dns + ".com")
except socket.gaierror:
    print("Unique")
else:
    print("Not Unique"))

注意:

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

【讨论】:

【解决方案2】:

您可以使用try-except 来捕获错误。在这段代码 sn-p 中,我们尝试连接到给定的域,如果连接成功(网站存在),则打印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")

【讨论】:

  • 1. 您的代码执行其他操作(OP 不需要某些网站存在,他们只执行 DNS 查找,而您尝试 HTTP 连接)。 — 2. 捕获异常并不是一件好事——它捕获所有异常,并为所有异常提供统一消息Unique。 ——但对于初学者来说,答案还不错。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 2022-12-17
  • 2018-11-06
  • 2018-07-24
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多