Python socket.gethostbyname 函数返回一个 ip 地址,但我无法 ping 它

标签 python sockets

我写了一个小脚本来获取主机名列表的 IP 地址。但是,当我尝试 ping IP 地址时,我收到请求超时。为什么会发生这种情况?

import csv
import socket

path = 'Clients.csv'

with open(path) as fopen:
    rows = csv.reader(fopen)
    for row in rows:
        try:
            resp = socket.gethostbyname(row[0])
            print(row[0], resp)
        except:
            continue

最佳答案

答案在问题中:您请求的 DNS 服务器知道该名称,因此它会为您提供匹配的 IP。

这并不意味着执行 ping 的机器实际上可以找到网络路径来 ping 目标。例如,源服务器和被 ping 服务器之间可能有防火墙,源和目标之间的网络不一定路由在一起等。

超时可能是防火墙阻塞的标志。

关于Python socket.gethostbyname 函数返回一个 ip 地址,但我无法 ping 它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877004/

相关文章:

python - 编写一个与 wpa_supplicant 交互的外部程序

python - py2app 在使用 virtualenv 时没有将 Python.framework 复制到新应用程序

java - 如何使用 java 安全地验证服务器套接字?

android - 如何在不配对的情况下使用蓝牙在Android编程中发送和接收数据?

Mac 上的 C++ 套接字服务器。帮助!

python - 将 scipy 对象保存到文件

python - 如何解压 pkl 文件?

c - OpenSSL openwrt 套接字绑定(bind)失败

python - Python 初学者 - 为什么我的 while 循环不起作用?

c# - BeginAccept 方法后无法关闭套接字