MasaのITC Life

夢は起業家!全てにおいて凡人だけど頑張ることだけはいっちょ前!

プログラミング

Cでarpreq構造体&SIOCSARPを使ってARPテーブルにエントリーを追加してみた!

投稿日:

今回はCでARPテーブルにエントリーを追加してみます。


鍵となるのは、ARPエントリーの情報をまとめたarpreq構造体と、そのエントリーをARPテーブルに登録するためのSIOCSARPです。ちなみにSIOCGARPでエントリー情報を取得できます。

ARPエントリーを新規追加するには、MACアドレス、IPアドレス、フラグ、インタフェースの4つを指定しなければいけません。その4つの情報をarpreq構造体に格納して、そのarpreq構造体をSIOCSARPで登録すれば追加完了です。



arpreq構造体は、/usr/include/linux/if_arp.hで定義されています。



ソースコードはこんな感じです。


実行結果は以下のようになります。

まずは、arpテーブルを表示させます。

プログラムを実行します。

実行後のarpテーブルを表示させます。実行時に指定したアドレスの対応表が追加されます。

ちなみにシャットダウンすれば、新規追加されたARPエントリーは消えます。


最後まで読んでいただきありがとうございます。

-プログラミング

Copyright© MasaのITC Life , 2023 All Rights Reserved Powered by STINGER.