#include #include /* IBCMC.EXE Ver0.70 1998/07/20 Ipmsg BroadCast setup files Maker Command line edition. Copyright (C); 1997,1998 RONA shun-shin / Kanou Toshinobu, ALL RIGHT RESERVED IP Messenger の Broadcast 設定用のファイルを作成するプログラム LSI C-86 Ver.3.30c 試食版(エル・エス・アイ ジャパン(株)製)にてコンパイル DOS系OS上(95,NT含む)にて実行可能(なはず) MKBCREG.EXE より改名 */ int main(int argc,char *argv[]){ FILE *input; /* IPアドレス入力ファイルへのファイルポインタ */ FILE *out32; /* 32bit用出力ファイルへのファイルポインタ */ FILE *out16; /* 16bit用出力ファイルへのファイルポインタ */ FILE *outMac; /* Mac用出力ファイルへのファイルポインタ */ FILE *outEtc; /* Java,X用出力ファイルへのファイルポインタ */ char IPaddress[18]; /* IPアドレスのリスト */ char *temp; /* テンポラリ */ int i; /* ループ用 */ int aaa,bbb,ccc,ddd; /* IPアドレスの各要素 */ printf("IBCMC.EXE Ver0.70 1998/07/20\n"); printf("Ipmsg BroadCast setup files Maker Command line edition.\n"); printf("Copyright (C); 1997,1998"); printf(" RONA shun-shin / Kanou Toshinobu, ALL RIGHT RESERVED\n"); printf("http://member.nifty.ne.jp/rona/kobo/\n"); printf("mailto:rona.kanou@nifty.ne.jp\n\n"); /* 著作権表示 */ if(argc == 1){ /* ファイル名が指定されていない場合 */ printf("入力するファイル名を指定して下さい\n"); printf("usage: ibcmc inputfilename\n"); return(1); } if((input = fopen(argv[1],"rt") ) == NULL){ /* 入力ファイルのオープン */ /* 処理系によっては "rt" ではなく "r" にする必要あり */ printf("入力ファイルをオープンできません\n"); fcloseall(); return(1); } if((out32 = fopen("ipmsg32.reg","wt") ) == NULL){ /* 32bit用の出力ファイルオープン */ /* 処理系によっては "wt" ではなく "w" にする必要あり */ printf("Win32用出力ファイルをオープンできません\n"); fcloseall(); return(1); } if((out16 = fopen("ipmsg16.reg","wt") ) == NULL){ /* 16bit用の出力ファイルオープン */ /* 処理系によっては "wt" ではなく "w" にする必要あり */ printf("Win16用出力ファイルをオープンできません\n"); fcloseall(); return(1); } if((outMac = fopen("ip_bcast.","w") ) == NULL){ /* Mac用の出力ファイルオープン */ printf("Mac用出力ファイルをオープンできません\n"); fcloseall(); return(1); } if((outEtc = fopen("ip.lst","wt") ) == NULL){ /* Java,X用の出力ファイルオープン */ /* 処理系によっては "wt" ではなく "w" にする必要あり */ printf("Java,X用出力ファイルをオープンできません\n"); fcloseall(); return(1); } fprintf(out32,"REGEDIT4\n"); /* Win32bit用のレジストリエディタ用の呪文 */ fprintf(out16,"REGEDIT\n"); /* Win16bit用のレジストリエディタ用の呪文 */ fprintf(outMac," %c%c%c%c",255,255,255,255); /* Mac用の呪文 */ fprintf(outEtc,"255.255.255.255"); /* Java,X用の呪文 */ for(i=0;fgets(IPaddress,17,input) != NULL;i++){ /* 読み込めるIPアドレスがなくなるまで繰り返し */ if((temp = strchr(IPaddress,'\n')) != NULL){ /* 文字列に改行が含まれていた場合、ヌルに置き換える */ *temp = '\0'; } fprintf(out32,"[HKEY_CURRENT_USER\\Software\\HSTools\\IPMsg\\BroadCast\\%d]\n\"\"=\"%s\"\n",i,IPaddress); /* Win32bit用のレジストリ登録文字列出力 */ fprintf(out16,"HKEY_CLASSES_ROOT\\HSTools\\IPMsg\\BroadCast\\%d = %s\n",i,IPaddress); /* Win16bit用のレジストリ登録文字列出力 */ sscanf(IPaddress,"%d.%d.%d.%d",&aaa,&bbb,&ccc,&ddd); /* IPアドレス文字列から各要素を抽出 */ fprintf(outMac,"%c%c%c%c",(unsigned char)aaa,(unsigned char)bbb,(unsigned char)ccc,(unsigned char)ddd); /* Mac用の文字列出力 */ fprintf(outEtc,",%s",IPaddress); /* Java,X用の文字列出力 */ } fseek(outMac, (long)0, SEEK_SET); /* Mac用のファイルの先頭に移動 */ i++; /* BroadCastアドレス(255.255.255.255)の分を足す */ fprintf(outMac,"%c%c",(unsigned char)(i/256),(unsigned char)(i%256)); /* Mac用のファイルの先頭にIPアドレス数を書き込み */ fprintf(outEtc,"\n"); /* Java,X用のファイルの最後に改行を追加 */ fcloseall(); printf("設定ファイルは正常に作成されました\n"); return(0); }