我正在尝试弄清楚如何解析 CentOS 机器上特定域的子网。例如,Google 拥有一系列 IP 地址,其中一个特定范围是64.233.160.0 - 64.233.191.255
。现在他们还有更多,但我只讨论这个问题的这个范围。
我最初尝试做的是在 /etc/hosts 文件中使用此范围和主机名Google
,但我发现 /etc/hosts 文件每行只接受一个 IP 地址,而不是 IP 地址范围,甚至不接受通配符。
之所以这一点很重要,是因为我们有一个跟踪用户访问的 IP 地址的产品,并且我们想要在树形图上绘制数据图表,但是63.233.160.5
我们希望它显示的不是图表Google
。
到目前为止,我唯一的线索是使用 /etc/hosts 文件,但我不想单独输入 Google、Facebook 等的每个地址。还有其他方法可以实现我的目标,让我的生活变得轻松很多吗?
答案1
我认为你可以很容易地查询辐射剂量为此。获取每个 IP 地址的 ASN,然后使用它们进行操作。
例如:
$ whois -h whois.radb.net 63.233.160.5
[Querying whois.radb.net]
[whois.radb.net]
route: 63.232.0.0/14
descr: Qwest Communications
950 17th Street Suite 1900
Denver, CO 80202
origin: AS209
mnt-by: MAINT-QWEST
changed: [email protected] 20020504
source: RADB
这里我们看到这个 IP 在 AS209 中(如果愿意,您可以将其存储起来而不是 IP,或者将其添加到 IP 中)并且已注册到 Qwest Communications,然后您可以显示它。
答案2
如果您希望将 IP 地址解析为网络名称而不是主机名称,则不应使用旨在将 IP 地址解析为主机名的工具。换句话说,该工具不应从/etc/hosts
或通过使用任何库调用来获取映射,这些库调用从 DNS 中的 PTR 记录或通过 PTR 记录查找映射/etc/hosts
。
可以为该工具提供一个单独的文件,其中包含要显示的网络前缀和名称的列表,如果网络不在指定的文件中,则可以选择将 IP 地址解析为主机名。