资源描述:
《用c写的一个扫描器源码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用C写的一个扫描器源码用C写的一个扫描器源码《原创》给豆哈!用C写的一个扫描器源码^^大家直接以下代码,然后保存为bat和exe格式都可以的!不顶就不要看了,累死我了!#include#include//编译时需使用的库#pragmacomment(lib,"wsock32.lib")//select()成员定义#defineZERO(fd_set*)0//变量定义intmaxth,scanok,scannum;intportip,hoststart,hoststop,startport,endport;//定义了开始I和结束P地址,
2、开始和结束端口longsearchnum,searched;voidusage(char*);//定义显示使用方法函数voidplayx(int);//定义状态提示函数voidsetip2(char*);//定义设置IP函数voidcustomport(char*,char*,char*);//定义自定义扫描端口函数voidportscannow(int);//定义端口扫描扫描//主程序intmain(intargc,char*argv[]){WSADATAwsadata;//清屏system("cls.exe");//显示版本信息printf("r==========
3、==========HUCCommandLinePortScannerV0.2====================");printf("r===============ByLion,Welcometohttp://www.cnhonker.net===============r");//检查输入if((argc<3)
4、
5、(argc>4)){//显示帮助提示usage(argv[0]);return-1;}//检测是否为port扫描if(!(stricmp(strlwr(argv[1]),"-p")==0)){usage(argv[0]);return-1;
6、}//程序初始化if(WSAStartup(MAKEWORD(1,1),&wsadata)!=0)//如果初始化错误{printf("rWsatartuperror");//出错信息return-1;}//端口扫描参数转换//如果参数为三个if(argc==3){//直接设置IPsetip2(argv[2]);}//如果参数为四个elseif(argc==4){//进入定制端口扫描处理customport(argv[0],argv[2],argv[3]);}//参数过多显示帮助else{usage(argv[0]);return-1;}//扫描端口开始portscann
7、ow(argc);WSACleanup();return0;}//帮助提示函数voidusage(char*prog){printf("Usage:%s
8、StartPort-EndPort]9、IP
10、StartIP-EndIP>");printf("rExample:");printf("r%s-p192.168.0.1",prog);printf("r%s-p192.168.0.1-192.168.0.254",pr
11、og);printf("r%s-p21-80192.168.0.1",prog);printf("r%s-p21-80192.168.0.1-192.168.0.254r",prog);return;}//进度提示voidplayx(intplay=0){//进度条char*plays[12]={"
12、","/","-","\","
13、","/","-","\","
14、","/","-","\",};if(searchnum!=0){for(inti=0;i<=3;i++){printf("=%s=%d%sCompleted.r",plays,search
15、ed*100/(searchnum+1),"%");Sleep(5);}}else{printf("=%s=r",plays[play]);//显示进度Sleep(10);}}//设置IPvoidsetip2(char*cp){inthost;structhostent*testhost;char*startip="",*endip="";//判断是否为192.168.0.1-192.168.0.254形式的输入if(strstr(cp,"-")&&strlen(cp)>15&&strlen(cp)<