TPC CONNECT扫描源码示例
#include <stdio.h>
#include <string.h>
#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
int main(intargc,char*argv[]){
SOCKET mysocket;
intpcount = 0;
structsockaddr_in my_addr;
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(2,2);
if(argc< 4) {
printf("usage: %s <host> <beginport> <maxport>\n",argv[0]);
exit(1);
}
if(WSAStartup(wVersionRequested , &wsaData)){
printf("Winsock Initialization failed.\n");
exit(1);
}
for(inti=atoi(argv[2]); i <= atoi(argv[3]);i++){
if((mysocket= socket(AF_INET, SOCK_STREAM,0))== INVALID_SOCKET){
printf("Socket Error");
exit(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(mysocket,(structsockaddr *)&my_addr, sizeof(structsockaddr)) == SOCKET_ERROR)
closesocket(mysocket);
else{
pcount++;
printf("Port %d - open\n", i);
}}
printf("%d ports open on host - %s\n",pcount, argv[1]);
closesocket(mysocket);
WSACleanup();
return0;
}