//
//PortScan.cpp
#include < winsock2.h >
#include < windows.h >
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
#pragma comment( lib, "WS2_32.lib" )
//-----------------by Chrython Chou 200532530012 ----------------------
//
//函数原型
//欢迎界面
void psTitle( char * );
//默认扫描方式
void ps1( char *, char * );
//自定义扫描方式
void ps2( char *, char *, char *, char * );
//获得主机信息
void GetLocalDate( void );
//线程函数
DWORD WINAPI psProc(
LPVOID lpParameter // thread data
);
//
//全局变量
//目标地址和目标端口
char g_szTargetIP[20];
int g_nTargetPort;
//默认常用探测端口
int g_nPorts[23] = {
21,22,23,25,53,79,80,110,111,119,135,139,143,
443,445,512,554,1080,1433,1521,2401,3306,3389
};
//端口开放数量
int g_nOpenPorts;
//
//类
//载入和释放Winsock2库的类
class CInitSock
{
public:
CInitSock( BYTE minorVer = 2, BYTE majorVer = 2)
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( minorVer, majorVer );
err = ::WSAStartup( wVersionRequested, &wsaData );
if( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != minorVer || HIBYTE( wsaData.wVersion ) != majorVer )
{
::WSACleanup();
return;
}
}
~CInitSock()
{
::WSACleanup();
}
};
//参数输入错误类
cl