四方山話

1999, 20 February

pingを行うプログラム

Windowsで、pingを行うプログラムを作る場合は rawソケットを使って実現するというのが正統なやりかただとは思うのですが、あまり知られていない(?)と思われる IcmpSendEchoを使用するとちょっと楽をできます。
使用するヘッダファイルは、ipexport.h と icmpapi.hです。主要部分を以下に示します。

Icmp系の関数を使用するときは icmp.libをリンクするか icmp.dllを LoadLibraryして、IcmpCreateFile, IcmpCloseHandle, IcmpSendEchoを GetProcAddressして使うようにしてください。

ところで、ここで使用している構造体に、ICMP_ECHO_REPLYというものがあるのですが、このなかの ReplyStatusが何を意味するものが良くわからなかったのですが この構造体が定義してある Ipexport.h のちょっと下を見ると

っと定義されているじゃないですか... これになかなか気がつかずに色々探してしまいました。まぁこの定義だけではまだ完全な意味がわかるわけではないのですが define文の文字列からかなり想像できますからね。


home ご意見・ご感想などは、こちらへどうぞ
okugawa@mail.com