因此,我在对 IPv4 地址进行排序时遇到了困境,并且不知道某些晦涩的网络文档中是否有固定规则。我是否只对原始地址进行直接排序(例如将 IP 地址转换为 32 位数字然后排序),我是否通过一些数学公式将 CIDR 因素考虑在内,我是否仅通过 CIDR 进行排序(好像我' m 比较网络大小而不是直接比较地址)?
即,正常数学,我们会做一些事情-1 < 0 < 1
来表示优先顺序。鉴于说,10.1.0.0/16
,172.16.0.0/12
,192.168.1.0/24
和192.168.1.42
,优先顺序是什么?
您可以使用以下命令对 IP 地址进行排序:
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 ips.txt
Run Code Online (Sandbox Code Playgroud)
这是什么?
它使用 sort 和-n
参数告诉 sort 我们将进行数字排序。
但是我们的数字由 4 个子数字(ip 地址的实际八位字节)表示,这些子数字由点.
( -t .
)分隔。因此,让我们开始排序,首先按第一个字段,仅按第一个字段 ( -k 1,1
),然后按第二个字段,仅按第二个 ( -k 2,2
),依此类推 ( -k 3,3 -k 4,4
)。
归档时间: |
|
查看次数: |
2007 次 |
最近记录: |