<ブロック引用>
Linux
たとえば、/proc/$PID/net/tcp ファイルを読み取って、プロセスによって開かれた TCP ポートに関する情報を取得できます。
そのファイルは プロセス によって開かれた TCP ポートのリストではありません .これは、現在のネットワーク名前空間で開いているすべての tcp ポートのリストであり、同じネットワーク名前空間で実行されているプロセスは同一です。 /proc/net/tcp
の内容に .
プロセスによって開かれたポートを見つけるには、/proc/<pid>/fd
からソケット記述子のリストを取得する必要があります。 、それらの記述子を inode
に一致させます /proc/net/tcp
のフィールド .
お願いします
cat /proc/$PID/net/tcp
このような出力が得られます
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:01BB 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 2891985097 1 0000000000000000 100 0 0 10 0
出力の 2 列目 (local_address) には、ポートが 16 進数で表示されます。プログラミング電卓を使用して、16 進数コードを 10 進数に変換してください。
たとえば、ここでは、ポート :01BB (16 進数) は、HTTPS の既定のポートである 433 (10 進数) と同じです。