ipwhois返回结果字段速查一文读懂RDAP与Legacy Whois的完整数据结构【免费下载链接】ipwhoisRetrieve and parse whois data for IPv4 and IPv6 addresses项目地址: https://gitcode.com/gh_mirrors/ip/ipwhoisipwhois 是一款专注于IPv4 与 IPv6 whois 数据查询与解析的 Python 库它会把各注册局RIR返回的原始报文统一解析成结构清晰的标准字典。拿到一个results字典却不知如何下手本文提供一份ipwhois 返回结果字段速查表帮你一文读懂 RDAP 与 Legacy Whois 两种查询方式下的完整数据结构。两种查询方法RDAP 与 Legacy Whois 怎么选ipwhois 通过 ipwhois/ipwhois.py 中的IPWhois类提供两种主要查询方法方法说明返回格式lookup_rdap()✅ 官方推荐的 RDAP基于 HTTP 的 whois 协议查询结构化字典含网络、组织、联系人实体lookup_whois()传统 whois 协议查询lookup()自 v0.12.0 起已废弃网络列表 可选 referral 转介信息RDAP 的优势在于数据结构更好可以解析出用户、组织、分组的联系人信息并提供更详细的网络数据。Legacy Whois 则在 RDAP 不可用时作为兜底方案。公共顶层字段ASN 系列速查表两种查询方式的返回字典都包含同一组asn字段*由 ipwhois/asn.py 中的IPASN模块生成通过 DNS、whois、HTTP 三种方式依次尝试字段类型含义querystr你查询的 IP 地址asnstr自治系统编号Autonomous System Numberasn_cidrstr分配给该 ASN 的路由网段asn_country_codestrASN 分配国家码ISO 3166-1 格式asn_datestrASN 分配日期ISO 8601 格式asn_registrystr分配该 ASN 的注册局arin / ripe / apnic / lacnic / afrinicasn_descriptionstrASN 描述如GOOGLE, US注意asn_country_code来自 Cymru 数据反映的是 ASN 的注册地不等于 IP 实际地理位置请勿当作 GeoIP 使用。RDAP 返回字段完整拆解RDAP 结果字典lookup_rdap()输出的顶层结构如下字段类型含义query/asn*str同上节公共字段networkdict该 IP 所属的注册网络可能是父或子网络见下表entitieslist网络引用的对象组织/联系人名称列表objectsdict各实体对象的详细信息键为实体名nirdict日韩国家注册局补充信息见下文rawdict原始 RDAP JSON需设置inc_rawTrue network 网络字典字段类型含义cidrstrIP 所属的路由网段如74.125.0.0/16countrystr注册国家码ISO 3166-1start_address/end_addressstr网段的起止 IP 地址eventslist事件列表注册、最后变更等每项含action、timestamp、actorhandle/parent_handlestr该注册对象的唯一标识 / 父网络标识ip_versionstr协议版本v4或v6namestr网络注册名称如GOOGLEnotices/remarkslist通知与备注列表每项含title、description、linkslinkslist注册局提供的 HTTP/HTTPS 链接statuslist注册对象状态如[active]typestrRIR 分类如DIRECT ALLOCATION objects 实体字典含联系人objects中每个键如GOGL、ABUSE5250-ARIN对应一个实体对象字段类型含义handlestr实体唯一标识roleslist角色如registrant注册人、abuse滥用投诉、technical/administrativecontactdict联系人信息见下表entitieslist该实体引用的下级实体名称events/notices/remarks/links/statuslist含义同 network 字典其中contact 联系人字典是 RDAP 的精华所在由 ipwhois/rdap.py 中的 vCard 解析器生成字段类型含义namestr联系人名称如Google LLCkindstr类型individual个人/group分组/org组织addresslist邮政地址列表type valueemaillist邮箱列表如network-abusegoogle.comphonelist电话列表type 可为work、voice、fax等title/rolestr职位 / 角色depth参数控制实体解析深度depth0只查网络层引用的实体每加深一层都会向注册局发起更多查询耗时也随之增加。批量查询时建议配合调低rate_limit_timeout、调小retry_count来规避注册局限速。Legacy Whois 返回字段完整拆解lookup_whois()的结果字典解析逻辑见 ipwhois/whois.py与 RDAP 的差异主要在网络信息部分顶层字段类型含义query/asn*str公共字段同上netslist网络字典列表一个 IP 可能有多个父/子网络referraldict转介 whois 信息需get_referralTrueraw/raw_referralstr原始 whois 文本需inc_rawTruenirdict日韩注册局补充信息同 RDAPnets 网络字典的字段比 RDAP 更扁平化字段类型含义cidr/rangestr路由网段 / IP 区间如74.125.0.0 - 74.125.255.255name/handlestr网络名称 / 唯一标识descriptionstr网络描述如Google Inc.country/state/citystr国家码 / 州省 / 城市address/postal_codestr邮寄地址 / 邮编emailslist邮箱地址列表created/updatedstr注册日期 / 更新日期ISO 8601 两个实用细节当 whois 报文列出多个同名连续字段如多个Description:时解析器会用\n拼接其值一个网络含多个 CIDR 时会用, 分隔。NIR 字段日本与韩国的加餐数据 对于 JPNIC日本和 KRNIC韩国管理的 IP区域注册局会屏蔽部分详细信息。ipwhois 内置 NIR 支持ipwhois/nir.py默认开启inc_nirTrue结果挂在顶层nir键下nir.nets网络列表字段与 Legacy Whois 的 nets 类似额外提供nameservers域名服务器列表nir.nets[].contacts含admin/tech两个联系人各有name、organization、email、phone、fax、title等字段nir.raw原始 NIR whois 文本需inc_rawTrue例如查询大阪大学的 IP 时nets只能看到 JPNIC 的笼统信息而nir里能拿到具体的行政/技术联系人。上手示例3 行代码看懂字段from ipwhois import IPWhois from pprint import pprint obj IPWhois(74.125.225.229) pprint(obj.lookup_rdap(depth1)) # 推荐RDAP 完整结构 pprint(obj.lookup_whois()) # 备选Legacy Whois 结构完整示例输出可参考测试数据文件 ipwhois/tests/rdap.json 和 ipwhois/tests/whois.json它们分别记录了同一 IP 的 RDAP 与 Whois 原始响应。相关文档与源码文件一览资源路径主入口IPWhois类ipwhois/ipwhois.pyRDAP 解析实现ipwhois/rdap.pyLegacy Whois 解析实现ipwhois/whois.pyASN 查询实现ipwhois/asn.pyNIR 国家注册局解析ipwhois/nir.pyRDAP 字段官方文档RDAP.rstLegacy Whois 字段官方文档WHOIS.rstNIR 字段官方文档NIR.rstASN 查询文档ASN.rstCLI 命令行工具可读化输出字段ipwhois/scripts/ipwhois_cli.py常见疑问速答 Q1为什么某些字段是None注册局未提供该数据如 RDAP 中很多country为空不代表查询失败。Q2raw字段什么时候有值默认不返回需要显式传入inc_rawTrue。RDAP 返回的是 JSON 字典Legacy Whois 返回的是原始文本。Q3查询慢/被限速怎么办批量查询时把rate_limit_timeout调小或设置bootstrapTrue走 ARIN 引导解析代价是不返回 asn* 字段也可以试试实验性批量接口见 EXPERIMENTAL.rst。Q4如何把字段名翻译成可读文案使用 ipwhois/hr.py 中的人读字段映射或直接用附带颜色输出的 CLI 工具查看结果。掌握本文的字段速查表后你就能快速定位 RDAP 与 Legacy Whois 返回字典中的任何一个字段把 whois 数据真正用起来【免费下载链接】ipwhoisRetrieve and parse whois data for IPv4 and IPv6 addresses项目地址: https://gitcode.com/gh_mirrors/ip/ipwhois创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考