天天看点

socket端口扫描c语言,socket实现端口扫描

#include

#include

#pragma comment(lib,"WS2_32.lib")

void Init();

int PortScan(char* ip,int startport,int endport);

bool CheckPort(char* ip, int port);

SOCKET g_s;

int main()

{

Init();

if(CheckPort("127.0.0.1",80))

{

printf("Open");

}

else

{

printf("Close");

}

getchar();

return 0;

}

void Init()

{

WSAData da;

WSAStartup(MAKEWORD(2,2),&da);

g_s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

}

int PortScan(char* ip,int startport,int endport)

{

return 0;

}

bool CheckPortEx(sockaddr_in* addr)

{

if(connect(g_s,(sockaddr*)addr,sizeof(sockaddr_in))==0)

{

return true;

}

else

{

return false;

}

}

bool CheckPort(char* ip, int port)

{

sockaddr_in addr;

ZeroMemory(&addr,sizeof(sockaddr_in));

addr.sin_addr.S_un.S_addr=inet_addr(ip);

addr.sin_port=htons(port);

addr.sin_family=AF_INET;

return CheckPortEx(&addr);

}