邪恶八进制信息安全团队技术讨论组's Archiver

eviloctal 2007-10-12 14:23

[转载]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]
© 1999-2008 EvilOctal Security Team