• Python Whois 信息扫描


    前言

    Whois查询返回的参数字段是不固定的,因为Whois查询结果是由域名注册商或域名注册表提供的,每个注册商或注册表的数据格式和内容都可能不同。此外,在不同的TLD中,不同的注册表可能会使用不同的数据格式和标准来记录域名信息。因此,不同的Whois查询可能会返回不同的参数字段。

    另外,由于互联网上的域名数量巨大,并且可能会经常更改注册商或注册表,因此Whois数据库中的信息也可能会经常更新。这可能会导致不同时间或不同来源的Whois查询结果不同。

    虽然Whois查询返回的参数字段是不固定的,但通常包括与域名相关的基本信息,例如域名所有者、注册时间、过期时间、域名服务器、联系人信息等。因此,通过解析Whois查询结果,可以获取有关域名的基本信息,这对于域名管理和互联网安全具有重要意义。

    whois使用

    import whois
    
    
    def whois_print(domain_url: str) -> None:
        """
            whois信息查询
            Args:
                domain_url: 查询域名或IP
    
            Returns:
                None
            """
        whois_info = whois.whois(domain_url)
        res_info = dict(whois_info)
        for key in res_info.keys():
            try:
                if res_info[key] is not None:
                    if isinstance(res_info[key], list):
                        print("\033[1;32m[{}]:\033[0m\033[36m{}\033[0m".format(key, ','.join(
                            i+"\n" if isinstance(i, str) else i.strftime("%Y-%m-%d %H:%M:%S")+"\n" for i in res_info[key])))
                    else:
                        print("\033[1;32m[{}]:\033[0m\033[36m{}\033[0m".format(key, res_info[key]))
            except Exception as e:
                print('\033[1;31m[Error]:{}\033[0m'.format(e))
    
    
    if __name__ == '__main__':
        url = "www.baidu.com"
        whois_print(url)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    结果演示:

    [domain_name]:BAIDU.COM
    ,baidu.com
    
    [registrar]:MarkMonitor, Inc.
    [whois_server]:whois.markmonitor.com
    [updated_date]:2022-09-01 03:54:43
    ,2022-09-01 03:29:31
    
    [creation_date]:1999-10-11 11:05:17
    [expiration_date]:2026-10-11 11:05:17
    ,2026-10-11 07:00:00
    
    [name_servers]:NS1.BAIDU.COM
        ,NS2.BAIDU.COM
        ,NS3.BAIDU.COM
        ,NS4.BAIDU.COM
        ,NS7.BAIDU.COM
        ,ns4.baidu.com
        ,ns3.baidu.com
        ,ns2.baidu.com
        ,ns1.baidu.com
        ,ns7.baidu.com
    
    [status]:clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
        ,clientTransferProhibited https://icann.org/epp#clientTransferProhibited
        ,clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
        ,serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
        ,serverTransferProhibited https://icann.org/epp#serverTransferProhibited
        ,serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
        ,clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited)
        ,clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited)
        ,clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited)
        ,serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited)
        ,serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited)
        ,serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited)
    
    [emails]:abusecomplaints@markmonitor.com
        ,whoisrequest@markmonitor.com
    
    [dnssec]:unsigned
    [org]:Beijing Baidu Netcom Science Technology Co., Ltd.
    [state]:Beijing
    [country]:CN
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    第一类参数解析

    • domain_name: 域名名称
    • domain__id: 域名ID
    • whois_server: Whois服务器
    • registrar: 注册商
    • registrar_id: 注册商ID
    • registrar_url: 注册商网址
    • registrar_email: 注册商电子邮件地址
    • registrar_phone: 注册商电话号码
    • status: 域名状态
    • registrant_id: 注册人ID
    • registrant_name: 注册人名称
    • registrant_organization: 注册人组织
    • registrant_street: 注册人街道地址
    • registrant_city: 注册人城市
    • registrant_state_province: 注册人州/省
    • registrant_postal_code: 注册人邮政编码
    • registrant_country: 注册人国家/地区
    • registrant_phone: 注册人电话号码
    • registrant_email: 注册人电子邮件地址
    • registrant_fax: 注册人传真号码
    • registrant_application_purpose: 注册人申请目的
    • registrant_nexus_category: 注册人Nexus类别
    • admin_id: 管理员ID
    • admin: 管理员
    • admin_organization: 管理员组织
    • admin_street: 管理员街道地址
    • admin_city: 管理员城市
    • admin_state_province: 管理员州/省
    • admin_postal_code: 管理员邮政编码
    • admin_country: 管理员国家/地区
    • admin_phone: 管理员电话号码
    • admin_email: 管理员电子邮件地址
    • admin_fax: 管理员传真号码
    • admin_application_purpose: 管理员申请目的
    • admin_nexus_category: 管理员Nexus类别
    • tech_id: 技术员ID
    • tech_name: 技术员
    • tech_organization: 技术员组织
    • tech_street: 技术员街道地址
    • tech_city: 技术员城市
    • tech_state_province: 技术员州/省
    • tech_postal_code: 技术员邮政编码
    • tech_country: 技术员国家/地区
    • tech_phone: 技术员电话号码
    • tech_email: 技术员电子邮件地址
    • tech_fax: 技术员传真号码
    • tech_application_purpose: 技术员申请目的
    • tech_nexus_category: 技术员Nexus类别
    • name_servers: 域名服务器
    • creation_date: 创建日期
    • expiration_date: 过期日期
    • updated_date: 更新日期

    第二类参数解析

    • domain_name: 域名名称,包括大写和小写两种格式
    • registrar: 域名注册商,即该域名的注册服务提供商
    • whois_server: Whois服务器,即提供该域名Whois信息的服务器地址
    • referral_url: 转介网址,即该域名的注册服务提供商的网址
    • updated_date: 域名更新日期,即域名Whois信息最后更新的时间
    • creation_date: 域名创建日期,即注册该域名的时间
    • expiration_date: 域名过期日期,即该域名的注册有效期截止时间
    • name_servers: 域名服务器列表,即提供该域名DNS解析服务的服务器地址
    • status: 域名状态,表示该域名目前的状态,这里是"ok"表示域名正常
    • emails: 联系人邮箱地址,即与该域名相关的电子邮件地址
    • dnssec: DNS安全扩展,即该域名是否启用DNSSEC扩展
    • name: 注册人姓名,即该域名的注册人的姓名
    • org: 注册人组织,即该域名的注册人所属的组织机构
    • address: 注册人地址,即该域名的注册人的地址
    • city: 注册人所在城市
    • state: 注册人所在省份或州
    • registrant_postal_code: 注册人邮政编码
    • country: 注册人所在国家或地区

    总结

    Whois是一个用于查询域名注册信息的协议。它提供了用于查找关于域名注册者、注册日期、过期日期、域名服务器、注册商等信息的查询服务

    需要注意的是,不同的Whois查询可能返回的参数字段会有所不同,而且有些查询结果可能会包含更多或更少的信息。因此,具体的查询结果可能会因查询对象和Whois服务器而异。

  • 相关阅读:
    Qt中 QMap 类、QHash 类、QVector 类详解
    内存自动释放工具-Mem Reduct
    记于2022.7.21
    序列超图的下一项推荐 笔记
    Linux
    EMQX 入门教程⑤——安全认证 | 使用 HTTP 的密码认证,设备登录鉴权
    Github 2024-05-29 开源项目日报Top10
    Redis快速上手篇(三)(事务+Idea的连接和使用)
    Leetcode刷题解析——串联所有单词的子串
    Java String.split()方法具有什么功能呢?
  • 原文地址:https://blog.csdn.net/Return_Li/article/details/133984450