如何编写简单的端口扫描程序:

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

如何编写最简单的端口扫描程序:

一:新建一个支持MFC的WIN32控制台应用程序;

二:在 SCANPORT.CPP文件中,添加两个全局变量:

int i ;

CSocket sockClient;

再添加线程处理函数定义:

DWORD WINAPI ScanPorts(LPVOID);

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])

代码如下:

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])

{

int nRetCode = 0;

// initialize MFC and print and error on failure

if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))

{

// TODO: change error code to suit your needs

cerr << _T("Fatal Error: MFC initialization failed") << endl;

nRetCode = 1;

}

else

{

::SetConsoleTitle("Scan ports -- Written by CodeWorrior");

/////////////////////////////////////

//

// 扫描的主机,可以改为用户输入

//

//////////////////////////////////////

// TODO: code your application's behavior here.

AfxSocketInit(NULL);

for(i=1;i<=10;i++)

{

HANDLE hThread;

DWORD dwThreadID;

file://cout<<i<<endl;

hThread = CreateThread(NULL,0,ScanPorts,(LPVOID)i,0,&dwThreadID);

Sleep(1000);

::WaitForSingleObject(hThread,200);

CloseHandle(hThread);

}

}

cout<<endl;

return nRetCode;

}

DWORD WINAPI ScanPorts(LPVOID p)

{

try

{

int j = (i-1)*100;

printf("Thread %d starting\n",i);

for(j;j<i*100;j++)

{

sockClient.Create();

if(sockClient.Connect("10.128.0.3",1028))

{

cout<<endl;

cout<<"port"<<" "<<j<<" ";

cout<<"Connect to server succeed!"<<endl;;

sockClient.Close();

}

else

{

printf("port %d connect to server failed\n",j); //可以显示正在连接那个端口

sockClient.Close();

}

}

}

catch(...)

{

sockClient.Close();

}

printf("Thread %d Terminate!\n",i);

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航