netstatはルーティングテーブルをどのように読みますか?

netstatはルーティングテーブルをどのように読みますか?

私のPHPコンテナの場合、ideがリッスンしているIPを検出する必要がある場合です。私は走る:

ip=$(netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10)

ゲートウェイIPを取得しました。ただし、これにはnet-toolsPHPアプリケーションまたはそれに対応するアプリケーションをインストールする必要があります。したがって、必要な機能(ゲートウェイIP検出)を直接実装したいと思います。

netstatそれでは、同様のツール(たとえば)がrouteルーティングテーブルをどのように読み取ることができますか?

私が知る限り、Linuxはルーティングテーブルを作成しますが、テーブルがどこに保存されているのかわかりません。

ベストアンサー1

Perlは簡単なデータ変換方法を提供します。

#!/usr/bin/env perl
$s = shift @ARGV or die "One argument expected\n";
@h = reverse unpack("A2A2A2A2", $s);
@i = map { hex($_) } @h;
print +(join ".", @i), "\n";

データと一緒に1行で書いてください。

perl -e '$s=shift @ARGV;@h=reverse unpack"A2A2A2A2",$s;@i=map{hex }@h;print +(join".",@i),"\n"' 010016AC
172.22.0.1

スクリプトはコマンドライン引数に変換するアドレスを使用し、それを4つの2文字の文字列に解凍し、各2文字を10進値に変換し、ペアの間にドット文字を使用してシーケンスを印刷します。

おすすめ記事