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となっていたので、これを変更したらタイムアウトの時間が短くなるかも?というノリで作った。
[実際短くなった]

明日学校で試してみよう。