資源簡介
用于掃描端口的C源代碼,十分實用,歡迎下載
代碼片段和文件信息
#include?
#include?
#include?
#pragma?comment?(lib“WS2_32“)
void?thread(void); //定義一個掌管進程的函數(shù)
int?PORT[1000]; //用數(shù)組記錄開放的端口號
static?int?open_port=0; //記錄開放端口的數(shù)目??
char?Host[200]; //記錄IP地址
int?i=0;
//創(chuàng)建多個進程
DWORD?WINAPI?ThreadProc1(?LPVOID?lpParam?)?
{
struct?sockaddr_in?port;
SOCKET?s;
for( ; ;i++)
{
printf(“正在掃描%d\n“i);
s=socket(AF_INETSOCK_STREAM0);
?? if(s==-1)
?? {
??? printf(“創(chuàng)建socket失敗!\n“);??
?? }
??
port.sin_family?=?AF_INET;
port.sin_port?=?htons(i);
port.sin_addr.S_un.S_addr=?inet_addr(Host);??
?
?? if(connect(s(struct?sockaddr*)&portsizeof(port))==-1)
?? {?
??? closesocket(s);
?? }
?? else
?? {
??? printf(“開放:%d\n“i);
PORT[open_port++]=i;
??? closesocket(s);
?? }??
}
return?0;
}?
DWORD?WINAPI?ThreadProc2(?LPVOID?lpParam?)?
{
struct?sockaddr_in?port;
SOCKET?s;?
for( ; ;i++)
{
printf(“正在掃描%d\n“i);
s=socket(AF_INETSOCK_STREAM0);
?? if(s==-1)
?? {
??? printf(“創(chuàng)建socket失敗!\n“);??
?? }
??
port.sin_family?=?AF_INET;
port.sin_port?=?htons(i);
port.sin_addr.S_un.S_addr=?inet_addr(Host);??
?? if(connect(s(struct?sockaddr*)&portsizeof(port))==-1)
?? {?
??? closesocket(s);
?? }
?? else
?? {
??? printf(“開放:%d\n“i);
PORT[open_port++]=i;
??? closesocket(s);
?? }??
}
return?0;
}?
DWORD?WINAPI?ThreadProc3(?LPVOID?lpParam?)?
{
struct?sockaddr_in?port;
SOCKET?s;?
for( ; ;i++)
{
printf(“正在掃描%d\n“i);
s=socket(AF_INETSOCK_STREAM0);
?? if(s==-1)
?? {
??? printf(“創(chuàng)建socket失敗!\n“);??
?? }
??
port.sin_family?=?AF_INET;
port.sin_port?=?htons(i); ?
port.sin_addr.S_un.S_addr=?inet_addr(Host);??
?? if(connect(s(struct?sockaddr*)&portsizeof(port))==-1)
?? {?
??? closesocket(s);
?? }
?? else
?? {
??? printf(“開放:%d\n“i);
PORT[open_port++]=i;
??? closesocket(s);
?? }??
}
return?0;
}?
DWORD?WINAPI?ThreadProc4(?LPVOID?lpParam?)?
{
struct?sockaddr_in?port;
SOCKET?s;?
for( ; ;i++)
{
printf(“正在掃描%d\n“i);
s=socket(AF_INETSOCK_STREAM0);
?? if(s==-1)
?? {
??? printf(“創(chuàng)建socket失敗!\n“);??
?? }
??
port.sin_family?=?AF_INET;
port.sin_port?=?htons(i); ?
port.sin_addr.S_un.S_addr=?inet_addr(Host);??
?? if(connect(s(struct?sockaddr*)&portsizeof(port))==-1)
?? {?
??? closesocket(s);
?? }
?? else
?? {
??? printf(“開放:%d\n“i);
PORT[open_port++]=i;
??? closesocket(s);
?? }??
}
return?0;
}?
int?main()
{
//使用winsock時先使用WSADATA初始化
//WSADATA結(jié)構(gòu)被用來儲存調(diào)用AfxSocketInit全局函數(shù)返回的Windows?Sockets初始化信息
評論
共有 條評論