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

如何用Python的ipwhois遍历IP列表,提取动态键下的name字段?

解决动态提取RDAP结果中IP所有者name的问题

核心思路

既然objects下的键是动态不固定的,直接遍历objects字典的所有值即可,无需关注具体键名。每个值内的contact.name就是目标所有者名称。

单个IP提取代码

from ipwhois import IPWhois

def get_ip_owner(ip):
    try:
        obj = IPWhois(ip)
        results = obj.lookup_rdap()
        objects_dict = results.get('objects', {})
        # 遍历objects下所有值,提取第一个有效所有者名称(通常仅存在一个主条目)
        for obj_value in objects_dict.values():
            contact_dict = obj_value.get('contact', {})
            name = contact_dict.get('name')
            if name:
                return name
        return "未找到所有者信息"
    except Exception as e:
        return f"查询失败: {str(e)}"

# 测试示例
print(get_ip_owner('74.125.225.229'))  # 输出Google LLC
print(get_ip_owner('20.190.159.200'))  # 输出Microsoft Corporation

批量遍历IP列表

处理大量IP时,直接循环调用上述函数即可:

ip_list = ['74.125.225.229', '20.190.159.200', '8.8.8.8', '1.1.1.1']

for ip in ip_list:
    owner = get_ip_owner(ip)
    print(f"IP {ip} 的所有者: {owner}")

补充说明

  • 部分IP的objects下可能存在多个条目,代码默认返回第一个有效name;若需收集所有关联名称,可改为列表收集后返回。
  • 异常处理用于避免单个IP查询失败(如无效IP、网络问题)导致批量任务中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:42:03