【发布时间】:2012-03-10 03:39:14
【问题描述】:
我有分配了 IP 地址范围的文件。它看起来像这样:
...
arin|US|ipv4|8.0.0.0|16777216|19921201|allocated
arin|US|ipv4|9.0.0.0|16777216|19881216|assigned
apnic|ID|ipv4|122.200.144.0|2048|20061023|allocated
apnic|TW|ipv4|122.200.152.0|2048|20080424|allocated
apnic|AU|ipv4|122.200.160.0|4096|20061020|allocated
apnic|AU|ipv4|122.200.176.0|4096|20110121|allocated
apnic|JP|ipv4|122.200.192.0|8192|20061023|allocated
...
我的问题是是否有可能以及如何使用 grep、awk 或其他工具等工具在 Linux 中使用 IP 地址作为搜索参数从该文件中获取特定行。
例如如果搜索到的 IP 是 8.8.8.8,结果应该是:
arin|US|ipv4|8.0.0.0|16777216|19921201|allocated
编辑// 完整的 ipv4 列表可以在这里找到http://skechboy.com/ips/ipv4_table
【问题讨论】:
-
这些字段是什么?第 5 列是网络的大小吗?
-
@dward-thomson 是的,这是特定网络中分配的 ip 数量。该数据由区域互联网注册机构link 公开提供
-
为什么 8.8.8.8 匹配一行
8.0.0.0?你能解释一下吗? -
8.8.8.8 应该匹配 8.0.0.0,因为它已分配给此网络,0 定义范围从 0 到 255,因此 8.1.1.1 和 / 8.255.255.255 之间的所有内容都分配给 8.0.0.0
标签: linux file search awk ip-address