You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python获取包含组织联系人的完整whois域名信息

Python获取完整.fr域名WHOIS信息的解决方案

python-whois库的内置解析规则仅覆盖了通用顶级域名的常用字段,对.fr这类国别域名的专属返回字段没有做完整映射,所以会丢失所有者、组织、地址等信息,可通过以下两种方法获取完整数据:

方案1:调用系统原生whois命令自定义解析

这个方法可以获取到和公开查询站完全一致的原始WHOIS返回内容,不会丢失字段,你可以按需提取需要的信息。Colab运行环境为Debian系Linux,可直接安装使用系统whois工具:

!apt update && apt install -y whois
import subprocess
import re

def get_full_whois(domain):
    # 调用系统whois命令获取原始返回
    result = subprocess.run(['whois', domain], capture_output=True, text=True)
    raw_whois = result.stdout
    # 提取组织信息
    org_match = re.search(r'organisation:\s*(.+)', raw_whois, re.IGNORECASE)
    organization = org_match.group(1).strip() if org_match else None
    # 可根据原始返回格式补充正则,提取地址、联系人等其他字段
    return {
        "raw_whois": raw_whois,
        "organization": organization
    }

print(get_full_whois('sommeilautop.fr'))

方案2:使用RDAP协议查询结构化域名信息

RDAP是WHOIS的替代协议,返回标准结构化JSON数据,不存在解析字段遗漏问题,.fr域名注册局已全面支持RDAP查询:

!pip install rdap
from rdap import RdapClient

rdap_client = RdapClient()
resp = rdap_client.get_domain('sommeilautop.fr')
# 注册人信息存放在entities字段的registrant角色下
registrant_info = [entity for entity in resp.data.get('entities', []) if 'registrant' in entity.get('roles', [])]
print(registrant_info)

注意事项

  • 无论是WHOIS还是RDAP查询,都有单IP频率限制,批量查询时建议控制请求间隔或搭配代理池使用,避免被注册局封禁。
  • 部分域名开启了隐私保护,即使获取完整结果也不会显示真实所有者信息。

内容的提问来源于stack exchange,提问作者Arnaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 01:00:01