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

时间:2016-11-29 22:31:45

标签: 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

1 个答案:

答案 0 :(得分:4)

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

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

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