原始出处:
http://www.antcodes.cn/post/10.html
Code 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;
}
Parsed in 0.012 seconds
转载于:https://www.cnblogs.com/HappyQQ/archive/2008/01/10/1033876.html
相关资源:端口扫描c++源码