ここでは、LinuxでRAWソケットを利用してICMPパケットの送受信を行う方法を説明したいと思います。 単純なpingプログラム pingコマンドはICMP(Internet Control Message Protocol)ECHOメッセージを送信し、相手ホストからのICMP ECHO REPLYメッセージを受け取る事により実現しています。 ここでは、ICMP ECHOメッセージを送信し、ICMP ECHO REPLYメッセージを受信する方法を説明したいと思います。 ICMPメッセージの送受信を行うにはRAWソケットと呼ばれるソケットを作成する必要があります。 RAWソケットの作成にはroot権限が必要です。 下記サンプルプログラムをコンパイルするのは一般ユーザでも大丈夫ですが、実行はrootで行う必要があります。 「pingコマンドはrootじゃなくても出来るけど?」と思う方もいるか
はじめに Raw Socket (生ソケット) を利用すると Ping のようなプログラムを書くことも容易にできる。本稿では、単純な ping のサンプルコードを示す。通常の ping にはいろいろなオプションがあるが、ここでは最も単純なコードにした。 ICMP ヘッダ Ping の実体は ICMP の Echo 要求である。 ここでは ICMP プロトコルの詳細は説明しない。今回のサンプルコードを読むにあたり、必要な程度のヘッダ情報を書き記すにとどめる。 詳細は RFC 792, 950, 1256 及び 1122 を参照のこと +---------------+--------------+----------------------+ | 8 bit ICMP | 8 bit ICMP | 16 bit ICMP Checksum | | Type | Code |
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く