【问题标题】:Is there a way to get ipaddresses of all the websites in the world to a txt file using python有没有办法使用 python 将世界上所有网站的 ipaddresses 获取到 txt 文件
【发布时间】:2019-03-12 09:43:34
【问题描述】:

我编写了一个 python 程序来使用它的 ipaddress 来 ping 一个网站,以检查它是否还活着。通过获取网站的 IP 地址并对其进行处理以供进一步分析,该程序在在线时运行良好。

这是示例代码:

def ip_address_web(hosts,port):
        alladdr = list(set(map(lambda x: x[4],socket.getaddrinfo(hosts,port))))
        global IPV4A, IPV6A, ip6array
        ip4array = []
        ip4 = filter(lambda x: '.' in x[0],alladdr)
        for addr4 in ip4:
            ip4 = addr4
            ipv4a = addr4[0]
            ip4 = ipaddress.ip_address(ipv4a)
            print(ip4.version)
            ip4array.append(ipv4a)
        print(ip4array)
        IPV4A = ip4array[0]
        try:
            print("ip6 check")
            ip6 = filter(lambda x: ':' in x[0],alladdr)
            ip6array = []
            for addr6 in ip6:
                ip6 = addr6
                ipv6a = addr6[0]
                ip6 = ipaddress.ip_address(ipv6a)
                ip6array.append(ipv6a)
            print(ip6array)
            IPV6A = ip6array[0]
        except:
            IPV6A = []
            print("ipv6a:",IPV6A)
            print("No IPv6 address")
hosts = "www.google.com"
port = 80
ip_address_web(hosts,port)

但在离线时,代码无法获取 ipaddress 以进行进一步处理。因此,我不想从在线获取 ipaddress,而是使其离线可用。所以我需要知道有没有办法在 txt 文件中获取所有网站的 IP 地址。

当我连接到网上时,我可以通过使用我的 python 程序或在 Google 上搜索来获取任何网站的 IP 地址。但是在离线状态下,这是不可能的。所以我正在制作另一个 python 程序来获取所有网站的 ipaddresses 并将其存储在 txt 文件中以使其可离线使用。那可能吗?? python中是否有任何库包含网站的所有IP地址。我在谷歌搜索但找不到。请任何解决方案...

【问题讨论】:

    标签: python python-3.x sockets web ip-address


    【解决方案1】:

    不,我认为 python 中没有包含 Internet 上所有网站的 IP 的库。您必须手动构建要测试的网站列表。

    websites = ["www.yahoo.com", "www.google.com"]
    with open("ips.txt", "w+") as fh:
        for i in websites:
            fh.write(gethostbyname(i)+"\n")
    

    稍后您可以从此文件中读取 IP 并测试您的连接性。

    进一步简单搜索显示,有近 2 亿个在线网站,更不用说超过 10 亿个的网站总数。因此,即使您有一个包含 1 亿个网站 IP 的文件,想象一下迭代或查找如此大的文件需要多少时间!

    【讨论】:

    • 感谢您的回答。但是如果用户查询文本文件以外的任何其他网站,对我来说很难处理。因此,出于这个原因,我需要将所有网站的 IP 保存在 txt 文件中。各个ipchecker网站是如何掌握所有网站的ip地址的
    • 据我所知没有,而且有近 2 亿个实时网站。更不用说网站总数了,所以即使你有一个包含 1 亿个网站 IP 的文件,甚至需要很长时间来遍历文件!
    • 改变你的方法。由于互联网是去中心化的,因此无法构建这样的列表。任何 IP 地址都可以托管网站。任何人都可以在他们控制的 IP 上设置网络服务器(或将其关闭),而无需通知您(或任何人)更新您的列表。
    • @ewindes 我认为你的评论不是我的!!
    猜你喜欢
    • 2023-02-09
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    相关资源
    最近更新 更多