2016-04-14 14 views
-2

ssは接続情報を抽出するのに適したツールだと思います。最も詳細な情報を調べるコマンドが必要ですが、WAN由来のIPアドレスを含む行だけを返します。IPアドレスと正規表現。すべての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\.)

彼の?正規表現は私のforteではありません。

答えて

0

これは、IPアドレスがipブロックに属しているかどうかを判断するために、ビット単位の計算を行うことができるようにすることで、より適切に解決されます。 perlモジュールNet :: CIDRを使った例です。 3つのRFC1918プライベートネットワークのうちの1つに属していない場合、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"))' 
関連する問題