⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scan.c

📁 《攻击与防护网络安全与实用防护技术》源代码,一本好书
💻 C
字号:
/*包含一些网络调用和系统调用的头文件*/
#include <winsock2.h>
#include "stdio.h"
#include <ctype.h> 
#pragma comment( lib, "ws2_32" )
#include <stdlib.h> 

#include <windows.h>
int main(int argc,char **argv)
{
	int probeport=0;
	//struct hostent *host;/*这里定义socket 主机结构*/
	int err,I,net;
	short i;
	struct sockaddr_in sa;/*socket地址结构*/
	
	if(argc!=2)
	{
		printf("用法:%s hostIP/n",argv[0]);
		exit(2);
	}
	for (i=1;i<65535;i++)/*扫描端口范围*/
	{
		strncpy((char*)&sa,"",sizeof sa);
		sa.sin_family=AF_INET;/*TCP/IP协议族*/
		//if(iswdigit(argv[1]))
		sa.sin_addr.s_addr=inet_addr(argv[1]);
		//else {
		//if(gethostbyname(argv[1])!=NULL){
		//	host=gethostbyname(argv[1]);
		//	strncpy((char*)&sa.sin_addr,(char*)host->h_name,sizeof(sa.sin_addr));
		//}
		//else 
		//{
		//	perror(argv[1]);
		//	exit(2);
		//}
		//}
		sa.sin_port=htons(i);/*本次扫描端口*/
		net=socket(PF_INET,SOCK_STREAM,0);/*建立一个socket套字节*/
		//if(net==INVALID_SOCKET )
		//{
		//	perror("\nsocket");
		//	exit(2);
		//}
		I=i;		
		err=connect(net,(struct sockaddr*)&sa,sizeof(sa));/*连接到本端口*/
		if(err!=0)
		{
			printf("%s%5d%s\r",argv[1],I,strerror(errno));/*如果端口关闭,则显示*/
			//	fflush(stdout);
		}
		else 
		{
			printf("%s%5d accepted.\n",argv[1],I);/*开放的端口显示*/
			
			
		}
		closesocket(net);/*关闭连接*/
	}
	printf("\r");
	//	ffush(stdout);
	return(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -