[转载]c语言下的端口扫描代码
原始出处:[url]http://www.antcodes.cn/post/10.html[/url][language=c]#include <stdafx.h>
#include <stdio.h>
#include <string.h>
#include <winsock.h>
#pragma comment (lib,"ws2_32.lib")
int main(int argc, char *argv[]) {
int mysocket;
int pcount = 0;
struct sockaddr_in my_addr;
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(1,1);
if(argc < 3) {
printf("usage: %s <host> <maxport>\n", argv[0]);
exit(1);
}
if (WSAStartup(wVersionRequested , &wsaData)){
printf("Winsock Initialization failed.\n");
exit(1);
}
for(int i=1; i < atoi(argv[2]); 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, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == 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();
return 0;
}[/language]
页:
[1]
