« Nikon D300発表 | Main | Ubuntu Gutsy (i386)でPAE+nvidia »

September 09, 2007

Linux: ifconfigコマンドの実装

何度となく実装しているはずだがいつもやりかたが思い出せなくなって時間を無駄にしている気がするので、ここにメモ。

ifconfigコマンドで出てくるようなネットワークインターフェースの情報を直接取得したいときにはどうするか?(Linux限定)

まずはインターフェースのアドレスなどの情報を取得する方法についてはnetdevice(7)にある。基本的にはソケット(種類は何でもいいらしい)を作ってそのソケットに対してioctlすることになる。

次にインターフェースの送受信したバイト数やパケット数等の情報は/proc/net/devから読んでいるようだ。システムが現在認識しているインターフェースの一覧もここから得ることができる。

余談であるが、netdeviceのマニュアルを読むと、デバイスのマルチキャストMACアドレスを設定したり削除したりする方法が示唆されている(SIOCADDMULTI, SIOCDELMULTI )。マルチキャストアドレスの現在の設定については/proc/net/dev_mcastで読むことができる。マルチキャストアドレスを自由に設定するツールは少なくとも標準的にはないような気がするので、知っておくと便利かもしれない。(もしあればコメント欄にツッコミをよろしく)

|

« Nikon D300発表 | Main | Ubuntu Gutsy (i386)でPAE+nvidia »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Linux: ifconfigコマンドの実装:

« Nikon D300発表 | Main | Ubuntu Gutsy (i386)でPAE+nvidia »