scan.cpp

来自「A small scanning source code. Hope we ca」· C++ 代码 · 共 55 行

CPP
55
字号
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")
//加载头文件和必须的库文件

int main(int argc, char* argv[])
{
	int socketid,pcount=0;
	struct sockaddr_in my_addr;
	WSADATA wsa;
	WORD SocketVer=MAKEWORD(1,1);
	if (SocketVer < 0)
		{
			printf("\n Socket Ver Error!");
			return -1;
		}
//初始化Socket和计数器,以及判断Socket版本
		if (argc <3)
			{
				printf("Usage:%s [Host] [MaxPort] \n",argv[0]);
				return -1;
			}
	if(WSAStartup(SocketVer,&wsa))
		{
			printf("Winsocket Initilalization Failed!\n");
			return -1;
		}
//判断参数和初始化Winsocket
	for (int i=1;i < atoi(argv[2]);i++)
		{
			if((socketid=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
				{
					printf("Create Socket error\n");
					return -1;
				}
			my_addr.sin_family=AF_INET;
			my_addr.sin_port=htons(i);
			my_addr.sin_addr.s_addr=inet_addr(argv[1]);
			if(connect(socketid,(struct sockaddr*)&my_addr,sizeof(struct sockaddr))==SOCKET_ERROR)
				closesocket(socketid);
			else
			{
				pcount++;
				printf("Find Port is %d\n",i);
			}
//设置端口和进行连接
		}
	printf("%d Ports Open on Host -%s\n",pcount,argv[1]);
	closesocket(socketid);
	WSACleanup();
	return 0;
}

⌨️ 快捷键说明

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