如何检查有效的公共 IP 地址?

网络工程 ipv4 ip IP地址
2021-07-22 13:35:13

考虑由X-Forwarded-For HTTP 标头提供的 IP 地址列表

10.0.0.142、192.168.0.10、212.43.234.12、54.23.66.43

我想知道哪个是该列表中第一个可公开访问的地址。我可以很容易地查看它们,但是我怎么知道哪些是可公开访问的?在我看来(我未经训练的眼睛)这10.0.0.142是一个工作站,192.168.0.10是一个内部代理,212.43.234.12是一个可公开访问的地址,通过代理转发54.23.66.43. 有没有办法在代码中计算这个?

我的第一直觉是,随着启动的地址10.192.不公开访问,但http://simplesniff.com揭示了我家的IP地址为192.117.111.61是否有一个公式可以确定哪些地址是公开的,哪些是保留的私人地址?请注意,即使尝试 ping 有问题的服务器也可能无济于事,因为某些服务器不会响应 ping,而且我的本地网络上可能有一个地址也与内部地址匹配。

4个回答

除了原始的 RFC 1918 空间(现在已更新为RFC6890),还有其他几个未公开发布的块,例如 192.0.2.0。此外,可能有人拥有有效的 IPv4 空间,但并未在公共互联网上公布。

最简单的方法是telnet route-views.oregon-ix.netrviews以自己的身份登录并查找……例如,这是 AS7018 (AT&T) 宣布的某个“192”空间……

route-views>sh ip route 192.199.1.0
Routing entry for 192.199.1.0/24
  Known via "bgp 6447", distance 20, metric 0
  Tag 7018, type external
  Last update from 12.0.1.63 3w1d ago
  Routing Descriptor Blocks:
  * 12.0.1.63, from 12.0.1.63, 3w1d ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 7018

route-views>

另一方面,你会看到 192.0.2.0/24 (ref RFC6890 ) 无处可寻......

route-views>sh ip route 192.0.2.0 255.255.255.0
% Subnet not in table
route-views>

169.254.0.0/16(或更长)也不是......

route-views>sh ip route 169.254.0.0 255.255.0.0 longer
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 128.223.51.1 to network 0.0.0.0

route-views>

RFC 1918 定义了私有 IP 地址范围。看看这里。

从该文件:

  1. 私有地址空间

    互联网号码分配机构 (IANA) 为私有互联网保留了以下三个 IP 地址空间块:

    10.0.0.0 - 10.255.255.255(10/8 前缀)

    172.16.0.0 - 172.31.255.255(172.16/12 前缀)

    192.168.0.0 - 192.168.255.255(192.168/16 前缀)

Team Cymru为 IPv4 和 IPv6 提供了一个 bogon 参考,您可以使用它来过滤掉未分配/保留/私有 IP 地址 - 它既作为众所周知的前缀的简单列表提供,也作为包含空间的更大列表提供尚未由 RIR 分配。

他们还运行 BGP bogon 服务器,您可以请求免费对等连接 - 如果您无法运行 Internet 的默认免费区域,这将非常宝贵。

有许多范围是为各种用例保留的。IANA 拥有权威且全面的列表它包括 RFC1918、RFC6761 以及更新的保留,如 100.64/10 CGN 块。如果您在那里找到任何地址,它们很可能以某种方式在专用网络中使用,并且应该被丢弃,以便其他人在搜索第一个公共地址时使用。