nslookup 没有在 Jupyter 的列表中正确获取域?

nslookup not properly picking up domains in list in Jupyter?

在 Jupyter Notebook 中,我有一个如下所示的域列表

domain_list=['google.com','example.com','thisisnotaworkingdomain12344321.com']

我打算通过一个循环传递此列表以检查每个域是否由 运行 快速 NSLookup 激活。但是,当我输入以下代码时:

for i in range(len(domain_list)):
! nslookup domain_list[i]

我收到以下信息:

    Server:  dsldevice6.attlocal.net
Address:  redacted

*** dsldevice6.attlocal.net can't find domain_list[i]: Non-existent domain

Server:  dsldevice6.attlocal.net
Address:  redacted

*** dsldevice6.attlocal.net can't find domain_list[i]: Non-existent domain

Server:  dsldevice6.attlocal.net
Address:  redacted

*** dsldevice6.attlocal.net can't find domain_list[i]: Non-existent domain

所以它显然是在为“domain_list[i]”而不是域列表中的第 i 个项目执行 nslookup。有没有人可以提供的解决方案?我无法确定快速解决方法。

根据您需要对输出执行的操作,这就是您需要的类型:

import subprocess

for domain in domain_list:
    subprocess.call( ['nslookup', domain] )

更简单的是:

import socket

for domain in domain_list:
    print( socket.gethostbyname( domain ) )
import dns.resolver

for i in domain_list:

    try:
        result=dns.resolver.resolve(i,'NS')
    except TypeError:
        domain_list.remove(i)

这似乎是对问题的可靠 band-aid 修复。