python 中的 DNS 地址和 return IP 地址的 Ping 列表

Ping list of DNS address and return IP address in python

提供存储在 .csv 工作簿中的 DNS 列表,如何遍历这些 DNS 的列表 ping 它们然后打印 IP 地址列表?以下代码无法正常工作。

import csv


with open('masterlist.csv', 'r') as f:
    reader = csv.reader(f)
your_list = list(reader)
response = os.system("ping -c 1 " + your_list)
print(your_list)

假设文件 masterlist.csv 的内容如下所示:

google.com
whosebug.com

这适用于 Windows。子进程库是 os.system 的超集,您应该改用它。

from subprocess import check_output

def get_ip(domain):
    # quick and dirty way of retrieving the ip address, 
    # better use regular expression
    response = check_output(['ping', '-n', '1', domain]).split()[2]
    return response.decode('utf8')

with open('masterlist.csv', 'r') as f:
    ip_addresses = {domain: get_ip(domain) for domain in f.read().splitlines()}

print(ip_addresses)