whois 命令和 whois REST API 给出不同的 IP 地址结果

whois command and whois REST API giving different results for IP address

运行 whois 74.93.16.177 在我的笔记本电脑上给我返回信息并告诉我 IP 属于 Comcast。

但是调用 Whois REST API 告诉我 IP 不受 RIPE 管理。通过在线搜索 public RIPE 镜像,我也可以获得与本地 whois 查询相同的结果。

参见:https://rest.db.ripe.net/search.json?query-string=74.93.16.177

给出

  "attribute" : [ {
    "name" : "inetnum",
    "value" : "74.0.0.0 - 74.255.255.255"
  }, {
    "name" : "netname",
    "value" : "NON-RIPE-NCC-MANAGED-ADDRESS-BLOCK"
  }, {
    "name" : "descr",
    "value" : "IPv4 address block not managed by the RIPE NCC"
  }, {
    "name" : "remarks",
    "value" : "------------------------------------------------------"
  }, {

而在命令行中,whois 74.93.16.177 给出

NetRange:       74.93.16.0 - 74.93.19.255
CIDR:           74.93.16.0/22
NetName:        CBC-CONNECTICUT-7
NetHandle:      NET-74-93-16-0-1
Parent:         CBC-CM-4 (NET-74-92-0-0-1)
NetType:        Reallocated
OriginAS:       
Organization:   Comcast Cable Communications, LLC (CCCS)
RegDate:        2007-11-13
Updated:        2017-11-01
Ref:            https://whois.arin.net/rest/net/NET-74-93-16-0-1



OrgName:        Comcast Cable Communications, LLC
OrgId:          CCCS
Address:        1800 Bishops Gate Blvd
City:           Mt Laurel
StateProv:      NJ
PostalCode:     08054
Country:        US
RegDate:        2001-09-17
Updated:        2017-01-28
Ref:            https://whois.arin.net/rest/org/CCCS

如何正确调用 REST API 以获得与命令行相同的响应,但在 JSON 中除外?

在这两种情况下,您所看到的 "object" 并不相同。在 RIR,IP 对象不仅仅是一个 IP 地址,它实际上是一个 IP 地址块,因为 RIR 将地址块分配给 LIR。

如您所见:

  • 在第一种情况下,结果大约是 74.0.0.0 - 74.255.255.255 也就是 74.0.0.0/8
  • 在第二种情况下,它大约是 74.93.16.0 - 74.93.19.255 也就是 74.93.16.0/22

第二个块包含在第一个块中,但每个块都有不同的所有者和元数据。

你可以在https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml中看到74.0.0.0/8已经在2005年分配给了ARIN。 所以你需要查询 ARIN 服务以获得关于这个区块(及其内部区块)的信息,这就是为什么 RIPE 在第一个回复中告诉你 "IPv4 address block not managed by the RIPE NCC".

这里有 ARIN 文档:https://www.arin.net/resources/whoisrws/whois_api.html

因此,在您的情况下,您需要使用 http://whois.arin.net/rest/ip/74.93.16.177.json,这会产生:

{
"net": {
"@xmlns": {
  "ns3": "http://www.arin.net/whoisrws/netref/v2",
  "ns2": "http://www.arin.net/whoisrws/rdns/v1",
  "$": "http://www.arin.net/whoisrws/core/v1"
},
"@inaccuracyReportUrl": "https://www.arin.net/public/whoisinaccuracy/index.xhtml",
"@termsOfUse": "https://www.arin.net/whois_tou.html",
"registrationDate": {
  "$": "2007-11-19T17:26:42-05:00"
},
"ref": {
  "$": "https://whois.arin.net/rest/net/NET-74-93-16-176-1"
},
"customerRef": {
  "@handle": "C01782735",
  "@name": "HOYLE TANNER AND ASSOC",
  "$": "https://whois.arin.net/rest/customer/C01782735"
},
"endAddress": {
  "$": "74.93.16.183"
},
"handle": {
  "$": "NET-74-93-16-176-1"
},
"name": {
  "$": "HOYLETANNERANDASSOC"
},
etc.

注意 74.93.16.176/29 的结果比 74.93.16.176/22

更具体