当端口 43 可能无法访问时,如何使用来自 python 脚本的 WHOIS 查询

How to use WHOIS queries from python script when port 43 is likely not accessible

我是网络编程的新手,遇到了以下问题:

我正在 Windows10 主机上的 VMware CentOS7 虚拟机上工作。 我的脚本应该发送 WHOIS 查询并解析它们的输出(例如到期日期)。

但是,尝试发送查询会导致连接错误:

>>>import whois
>>>whois.query('google.com')


WhoisCommandFailed: connect: Network is unreachable

我试图从终端whois,但错误是一样的。 当我尝试直接从托管虚拟机的 Windows 使用 whois 时,错误看起来也一样(连接超时)。

正如我发现的那样,它很可能与访问端口 43 有关。我通过 guide 为该端口的 Windows 防火墙创建了规则(用于进出),但是错误仍然坚持。 似乎 ISP 阻止了对该端口的访问(但是 ping 命令正在运行)。

总而言之,我有两个问题: 1)(不太重要)如何检查端口 43 是否被 ISP 防火墙阻止? 2)(最重要的)是否有可能以某种方式重新配置 WHOIS 以使用另一个端口(即 23)以通过 Python 脚本发送查询?
不幸的是,ISP 安全策略不允许他们打开 43 端口。

大多数 ISP 不会阻止任何端口,但是是的,这不是 100% 正确。

测试连接:

  • 运行 tcpdump (安装命令: yum install tcpdump) CentOS 上的命令: tcpdump -peni any tcp and port 43
  • 您必须看到包含以下文本的行:192.168.1.1.57350 > 192.34.234.30.43 其中 192.34.234.30 IP 地址表示远程 whois 服务器。
  • 尝试远程登录到远程服务器的 TCP/43 端口:telnet 192.34.234.30 43
  • 您应该看到以下内容:

Trying 192.34.234.30...

Connected to 192.34.234.30.

Escape character is '^]'.

  • 如果您看不到这样的上下文并且您会立即返回提示,您将在某处设置防火墙规则以阻止连接。建议暂时关闭防火墙再测试

您不能更改端口号,因为它是在远程服务器上配置的。

CentOS7服务器可以上网吗?例如,您可以安装软件包吗?

windows 机器和 ISP 之间是否有路由器?