WindowsでのPing機能の自前実装

やあみんな、元気にしてたかい。今日はWindowsPingを自分のプログラムの中から行いたいとかいってICMP送受信をしたいのだが、生ソケットだと、ローカルアドミン権限ユーザーでのみ動くものしか実装できない。それじゃ困るから、SOCK_RAW なしで、ICMP送受信を実現する方法はないかいと聞いたりしている、CodeGuru のスレッドの紹介だよ。

http://codeguru.earthweb.com/forum/showthread.php?t=245263

これで自分のプログラムの中にping機能の実装できるよ。よかったな。感謝だな。中身はよく知らないのさネットワークとか詳しくないし。はっはっは。でもちゃんと使えたよ。じゃ!

後記:肝心の内容へのリンクが切れてしまってるぽなので一応その中で参照されているページへのリンクも張っておく。
http://www.sockets.com/ms_icmp.htm
http://www.simeji.com/bun/icmpecho.htm
(↑実際にPINGが通ったかどうかは、戻り値である、ICMP_ECHO_REPLY の、Statusメンバを見ると良いっぽい)
要はこれは位置づけとしてはMS非推奨な禁じ手っぽい方法のようではある。ICMP.DLLというものの中の関数をしかも遅延ロードして使っているアプローチを紹介しているのである。でもちゃんと動くんだけどね。もっと正式な方法があるのであればおじさんとしてもむしろ知りたいところさ。え何?.NETならこんなの使わなくてもできるって?あー、そういうんじゃないんだよ坊や。うちはそういう店じゃないんだ。じゃ!