pinger
うちの学校のIP管理をしている。
とりあえず、どのIPアドレスが使われているのか調べようと思って、
適当にBATファイルで、ping をおらっ!って第三オクテットまでマスクかけて全検索をかけようとしたら、ものすごく時間がかかりきれそうになる。
しょうがないので、ping -n 1なんてしてやるとうれしいかも。と思ってやってみると、やっぱり時間がかかる。
で、家に帰って、ソケットプログラミングすりゃいけるかなと思って、やってみるけど、実力不足で無理。
そしたらicmpを使えばよいと書いてあったので、しかもpingのソースコードつきだったので、べべっってコピペしてやる。
そいつに、新しく、
#include#include #define TIMEOUT 2 int main(int argc, char* argv[]) { char* strRawIP = "192.168.1."; char* command = "socketping "; char order[100]; int iCounter = 0; char strCurrentIP[100]; //sprintf(strCurrentIP, "%s%d", strRawIP, iCounter); for ( iCounter = 0; iCounter < 255; iCounter++ ) { sprintf(strCurrentIP, "%s%d %d", strRawIP,iCounter, TIMEOUT); sprintf(order, "%s %s", command, strCurrentIP); printf("%s", order); system(order); } return 0; }
といったふざけたコードを書いて、
かぶしてあげたら結構うまくいった。
ちなみにこのtimeoutというのが、pingの実体の方にある、よくわからん関数[ぐぐっても日本語のページが2件しかでてこない。MSDNにも登録されていないなんてひどい]の最後の引数が5000となっていたので、これを変更したらタイムアウトの時間が短くなるかも?というノリで作った。
[実際短くなった]
明日学校で試してみよう。