端口扫描实验报告.docx

上传人:b****3 文档编号:1432195 上传时间:2022-10-22 格式:DOCX 页数:13 大小:105.15KB
下载 相关 举报
端口扫描实验报告.docx_第1页
第1页 / 共13页
端口扫描实验报告.docx_第2页
第2页 / 共13页
端口扫描实验报告.docx_第3页
第3页 / 共13页
端口扫描实验报告.docx_第4页
第4页 / 共13页
端口扫描实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

端口扫描实验报告.docx

《端口扫描实验报告.docx》由会员分享,可在线阅读,更多相关《端口扫描实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

端口扫描实验报告.docx

端口扫描实验报告

端口扫描实验报告

 

网络端口扫描实验报告

 

姓名:

刘俊峰

学号:

11054114

班级:

11052411

课程:

网络攻防技术

老师:

张旻

{

WSADATAwsadata;

system("cls.exe");

printf("\r\n==============命令行端口扫描器PortScannerV1.0==============");

if((argc<3)||(argc>4))

{

usage(argv[0]);

return-1;

}

if(!

(stricmp(strlwr(argv[1]),"-p")==0))

{

usage(argv[0]);

return-1;

}

if(WSAStartup(MAKEWORD(1,1),&wsadata)!

=0)

{

printf("\r\nWsatartuperror");

return-1;

}

if(argc==3)

{

setip2(argv[2]);

}

else

if(argc==4)

{

customport(argv[0],argv[2],argv[3]);

}

else

{

usage(argv[0]);

return-1;

}

portscannow(argc);

WSACleanup();

return0;

}

voidusage(char*prog)

{

printf("Usage:

%s

printf("\r\n\n

");

printf("\r\n-p[Port|StartPort-EndPort]");

printf("\r\n\nExample:

");

printf("\r\n%s-p192.168.0.1",prog);

printf("\r\n%s-p192.168.0.1-192.168.0.254",prog);

printf("\r\n%s-p21-80192.168.0.1",prog);

printf("\r\n%s-p21-80192.168.0.1-192.168.0.254\r\n",prog);

return;

}

voidplayx(intplay=0)

{

char*plays[12]=

{

"|","/","-","\\","|","/","-","\\","|","/","-","\\",

};

if(searchnum!

=0)

{

for(inti=0;i<=3;i++)

{

printf("=%s=%d%sCompleted.\r",plays,searched*100/(searchnum+1),"%");

Sleep(5);

}

}

else

{

printf("=%s=\r",plays[play]);

Sleep(10);

}

}

voidsetip2(char*cp)

{

inthost;

structhostent*testhost;

char*startip="",*endip="";

if(strstr(cp,"-")&&strlen(cp)>15&&strlen(cp)<32)

{

endip=strchr(cp,'-')+1;

strncpy(startip,cp,strlen(cp)-strlen(strchr(cp,'-')));

hoststart=ntohl(inet_addr(startip));

hoststop=ntohl(inet_addr(endip));

}

else

{

testhost=gethostbyname(startip);

if(!

testhost)

{

WSACleanup();

printf("\r\nCan'tgetipof:

%s",cp);

exit(-1);

}

memcpy(&host,testhost->h_addr,4);

hoststop=hoststart=ntohl(host);

}

}

voidTestThread(intthread=200)

{

for(;;)

{

playx();

if(maxth>thread)

Sleep(100);

elsebreak;

}

return;

}

voidWaitThreadEnd()

{

Sleep(6000);

printf("\r\r\n");

printf("Wait(%d)Threadend...\r\n",maxth);

for(;;)

{

if(maxth>0)

{

Sleep(100);

playx();

continue;

}

elsebreak;

}

printf("\r\n");

return;

}

voidcustomport(char*cp,char*cp2,char*cp3)

{

intintport;

char*checker;

startport=atoi(cp2);

endport=atoi(cp2);

if(strstr(cp2,"-"))

{

intport=atoi(checker=strchr(cp2,'-')+1);

if(intport>0&&intport<65536)

endport=intport;

}

if(startport<0||startport>65536||endport<0||endport>65535)

{

usage(cp);

exit(-1);

}

setip2(cp3);

}

UINTportscan(LPVOIDport)

{

intaddr=portip;

intsock;

structfd_setmask;

structtimevaltimeout;

structsockaddr_inserver;

unsignedlongflag=1;

sock=socket(AF_INET,SOCK_STREAM,0);

if(sock==INVALID_SOCKET)

{

printf("\r\nSockError:

%s",WSAGetLastError());

maxth--;

return-1;

}

server.sin_family=AF_INET;

server.sin_addr.s_addr=htonl(addr);

server.sin_port=htons(short(port));

playx();

if(ioctlsocket(sock,FIONBIO,&flag)!

=0)

{

printf("\r\nSockError:

%s",WSAGetLastError());

closesocket(sock);

maxth--;

return-1;

}

connect(sock,(structsockaddr*)&server,sizeof(server));

timeout.tv_sec=18;

timeout.tv_usec=0;

FD_ZERO(&mask);

FD_SET(sock,&mask);

switch(select(sock+1,ZERO,&mask,ZERO,&timeout))

{

case-1:

{

printf("\r\nSelect()error");

maxth--;

return-1;

}

case0:

{

maxth--;

closesocket(sock);

return-1;

}

default:

if(FD_ISSET(sock,&mask))

{

shutdown(sock,0);

printf("[Found:

]%sPort:

%dopen.\r\n",inet_ntoa(server.sin_addr),ntohs(server.sin_port));

closesocket(sock);

scanok++;

maxth--;

return1;

}

}

return0;

}

voidportscannow(intxp)

{

intsport;

char*timenow,timebuf[32];

char*ports[32]={

"21","22","23","25","53","79","80","110","111","113","123","135","139","143","443","512",

"513","514","515","540","1080","1433","1521","1524","3306","3389","5631","6000","6112",

"8000","8080","12345"

};

timenow=_strtime(timebuf);

printf("\r\nPortScanStartTime:

%s\r\n\n",timenow);

maxth=0;

scanok=0;

scannum=0;

searched=0;

searchnum=hoststop-hoststart+1;

if(xp==3)

searchnum=searchnum*32;

if(xp==4)

searchnum=searchnum*(endport-startport+1);

for(portip=hoststart;portip<=hoststop;portip++,scannum++)

{

if((portip%256)==0||(portip%256)==255)

{

if(xp==3)

searchnum=searchnum-32;

if(xp==4)

searchnum=searchnum-(endport-startport+1);

scannum--;

playx();

continue;

}

if(xp==3)

{

for(sport=0;sport<32;sport++,maxth++,searched++)

{

TestThread(180);

CWinThread*pthread=AfxBeginThread(portscan,LPVOID(atoi((char*)ports[sport])));

Sleep(120);

}

}

if(xp==4)

{

sport=endport-startport;

if(sport>50

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1