【发布时间】:2019-08-07 09:50:41
【问题描述】:
我正在创建自己的报告工具,并试图弄清楚如何使用端口号对 IP 地址进行排序。
如何使用端口号对 IP 地址进行排序,以便我先对 IP 地址进行排序,然后再通过端口号进行排序。我可以很好地对 IP 地址进行排序,但是当与端口号结合时,它变得很困难。
a = ['192.168.0.3 (443/tcp)|', '192.168.0.176 (443/tcp)|', '192.168.0.40 (443/tcp)|', '192.168.0.15 (8443/tcp)|', '192.168.0.16 (8443/tcp)|', '192.168.0.12 (443/tcp)|', '192.168.0.9 (3389/tcp)|', '192.168.0.15 (443/tcp)|', '192.168.0.16 (443/tcp)|', '192.168.0.3 (3389/tcp)|', '192.168.0.14 (443/tcp)|']
print(a.sort(key=lambda s: map(int, s.split('.')))) #this works fine with just IP address not with the current format of (xxx/tcp). The pipe is for delimiters so please ignore.
我想首先按 IP 地址排序输出,然后为每个 IP 按端口号排序。例如,前几个结果将是:
a= ['192.168.0.3 (443/tcp)|', '192.168.0.3 (3389/tcp)|', 192.168.0.9 (3389/tcp)|, ...']
【问题讨论】:
-
不应该
'192.168.0.9 (3389/tcp)|'是所需输出中的第三个吗? -
@Chris 已更正,谢谢