如何使用 python 获取所有存在的活动域

How to get all existence active domain with python

最近我开始了一个制作搜索引擎的项目, 我需要检查所有 活动域 ,这些域 也托管在我的国家 (伊朗)。 TLD 是什么并不重要,唯一重要的是网站应托管在伊朗。 我的问题是我无法在我的国家寻找所有存在的 IP,然后检查它是否处于活动状态,甚至它是否托管一个网站,因为这需要大量时间和资源, 有什么办法可以访问在伊朗托管的所有现存网站吗?以及如何计算要废弃的域?

另外,很抱歉我的问题写错了

如果您想获得在伊朗托管的所有域的列表, 您必须向属于伊朗的 IP 地址发送请求,其中有 5,260,800 个 IP 属于伊朗。 看看这个 link iran (islamic republic-of) IP address ranges,你应该向上面 link 的整个 IP 发送请求, 例如看下面的代码:

r = requests.get('http://79.127.127.15')
print(r.url)

这两行如果有的话会给你IP的域名,如果IP地址后面没有任何网站,它会return给你相同的IP地址,所以你有检查每 5,260,800 个 IP 以获取域。 您也可以使用以下代码生成 IP 地址:

def Int2IP(ipnum):
o1 = int(ipnum / 16777216) % 256
o2 = int(ipnum / 65536) % 256
o3 = int(ipnum / 256) % 256
o4 = int(ipnum) % 256
return '%(o1)s.%(o2)s.%(o3)s.%(o4)s' % locals()


start_ip = ipaddress.IPv4Address('2.144.0.0')
end_ip = ipaddress.IPv4Address('2.147.255.255')
for ip_int in range(int(start_ip), int(end_ip)):
    # print(requests.get('http://{}'.format(Int2IP(ip_int))))
    print(Int2IP(ip_int))