排序 IPv4 地址

Kum*_*mba -1 ipv4 sort

因此,我在对 IPv4 地址进行排序时遇到了困境,并且不知道某些晦涩的网络文档中是否有固定规则。我是否只对原始地址进行直接排序(例如将 IP 地址转换为 32 位数字然后排序),我是否通过一些数学公式将 CIDR 因素考虑在内,我是否仅通过 CIDR 进行排序(好像我' m 比较网络大小而不是直接比较地址)?

即,正常数学,我们会做一些事情-1 < 0 < 1来表示优先顺序。鉴于说,10.1.0.0/16172.16.0.0/12192.168.1.0/24192.168.1.42,优先顺序是什么?

pac*_*cey 6

您可以使用以下命令对 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)。

  • 正如我一直试图说的,*这取决于*。如果你想按地址排序,那么不,它不会。如果您想按网络大小排序,那么是的,这是唯一重要的事情。如果您想按其他标准排序,那么该标准很重要。你的问题似乎假设有一种排序地址的方法,这是从古人那里传下来的;但没有。这一切都取决于你想要做什么。请告诉我们您想通过此列表实现什么目标;否则很难回答这个问题。 (5认同)