-2

我想这ss是提取连接信息的好工具。我想要一个用最详细信息询问它的命令,但只返回包含 WAN 源 IP 地址的行。

例如,我希望基于以下内容的输出sudo ss -antu

Netid  State      Recv-Q Send-Q            Local Address:Port                           Peer Address:Port              
tcp    ESTAB      0      0                   192.168.12.1:38932                        211.54.192.102:443                
tcp    SYN-RECV   0      0            ::ffff:192.168.12.1:80                       ::ffff:69.59.249.6:59937              
tcp    ESTAB      0      750          ::ffff:192.168.12.1:80                       ::ffff:69.59.249.6:59498              

简而言之,没有清单:

  • 为我的目的而噪音
  • 私人地址(127\.) | (10\.) | (172\.1[6-9]\.) | (172\.2[0-9]\.) | (172\.3[0-1]\.) | (192\.168\.)

怎么办?正则表达式不是我的强项

4

1 回答 1

0

可以通过按位数学来确定 ip 地址是否属于 ip 块的方法可以更好地解决这个问题。这是一个使用 perl 模块 Net::CIDR 的示例。如果它不属于 3 个 RFC1918 专用网络之一,它将打印一个 IP 地址:

perl -mNet::CIDR -ne 'print unless Net::CIDR::cidrlookup($_, ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"))'
于 2016-04-14T16:14:35.877 回答