2012-02-28 19 views
0

マシンのルーティングテーブルをポータブルな方法で取得する必要があります。私はC++を使用していますが、Boostライブラリはすでに利用可能です。ポータブルな方法でC++でルーティングテーブルを取得する

ポータブルではないため、外部コマンドが利用できない可能性があるため、「ルート」などの外部コマンドは呼び出されません。

+4

"ルーティングテーブル"の概念は移植性がありません。興味のあるオペレーティングシステムについて具体的に説明できますか? –

+0

ネットワーク、サブネットマスク、ゲートウェイ、およびインターフェイスの観点からのテーブル情報のルーティング。 OSes = Windows XP以上、Linux 2.4以上、OS X、Android。これらは主要なものです。 また、Linuxの場合、/ procは実際にマウントされているとは言えません。 – rbeede

答えて

4

もちろん、routeを呼び出すことは、フォークして実行することはまれではありません。

残念ながら、[Net-SNMPプロジェクトの創始者として、Cの多くのプラットフォームのルートを報告しています]、プラットフォームに依存しない方法はありません。それぞれが情報をどのように保管し、どのように情報にアクセスするのかを学ぶ必要があります。 Linuxの場合、/ procから取得できます。他のOSでは、API呼び出しで取得できます。あなたが望むものが存在しないことを知ってうれしいとは思わないでしょう。そして、あなたはIPv4とIPv6の間で異なるかもしれないいくつかのプラットフォームを見つけるでしょう!

しかし、あなたはNet-SNMPコードを掘り下げて、そこで行われたすべての方法を探すことができます。まず、agent/mibgroup/ip-forward-mib/data_access/agent/mibgroup/mibII/var_route.cを参照してください。

関連する問題