簡単なpingの作成(ICMPの送受信)簡単なpingの作成(ICMPの送受信)ここでは、LinuxでRAWソケットを利用してICMPパケットの送受信を行う方法を説明したいと思います。REPLYメッセージを受け取る事により実現しています。REPLYメッセージを受信する方法を説明したいと思います。ICMPメッセージの送受信を行うにはRAWソケットと呼ばれるソケットを作成する必要があります。RAWソケットの作成にはroot権限が必要です。下記サンプルプログラムをコンパイルするのは一般ユーザでも大丈夫ですが、実行はrootで行う必要があります。「pingコマンドはrootじゃなくても出来るけど?」と思う方もいるかも知れませんが、それはpingコマンドがrootにsetuidしてあるからです。pingのサンプルコードを以下に示します。チェックサムを計算する関数です。ICMPヘッダのチェックサムフィールドを埋めるために利用します。IPヘッダのチェックサム計算用としても利用できます。0;}上記サンプルではかなり色々省略してありますが、最低限は動くと思います。動作しない、よくわからない、説明が足りない、間違っているなどがあればご指摘頂ければ幸いです。無断転載など、私的利用の範囲を逸脱した利用は禁止します.。