|
![]() | 作者: SANKKING [sankking]
![]() |
登录 |
源文件如下: ---------------------------------------------------------------- #include <winsock2.h> #include "stdio.h" #pragma comment(lib,"ws2_32") #include <stdlib.h> #include <windows.h> void main() { WSADATA ws; SOCKET s; struct sockaddr_in addr; int RESULT; long LRESULT; for(int i=1;i<200;i++) { LRESULT=WSAStartup(0x0101,&ws); s=socket(PF_INET,SOCK_STREAM,0); addr.sin_family=PF_INET; addr.sin_addr.s_addr=inet_addr("10.0.0.1"); addr.sin_port=htons(i); if(s==INVALID_SOCKET) break; RESULT=connect(s,(struct sockaddr*)&addr,sizeof(addr)); if(RESULT!=0) {printf("10.0.0.1:%i inactive\n",i); WSACleanup(); } else{ printf("10.0.0.1:%i on\n",i); } closesocket(s); } } ---------------------------------------------------------------- 这是个简单的扫描程序,但它的速度非常慢~~~~ 我不知道该如何改进它~~ Anyone can help me~~? 当然,它的功能非常低微,大家可以自己再拓展一下。 |
地主 发表时间: 12/01 20:15 |
![]() | 回复: willok [willok] ![]() |
登录 |
要扫描就用多线程嘛!要不速度是不可能提高多少的! |
B1层 发表时间: 12/01 20:21 |
![]() | 回复: SANKKING [sankking] ![]() |
登录 |
我才刚开始啊~~ 多线程估计得再过一阵子再说吧~~~ :( |
B2层 发表时间: 12/04 21:53 |
![]() | 回复: 286 [unique] ![]() |
登录 |
LRESULT=WSAStartup(0x0101,&ws); s=socket(PF_INET,SOCK_STREAM,0); addr.sin_family=PF_INET; addr.sin_addr.s_addr=inet_addr("10.0.0.1"); addr.sin_port=htons(i); if(s==INVALID_SOCKET) return; for(int i=1;i<200;i++) { RESULT=connect(s,(struct sockaddr*)&addr,sizeof(addr)); if(RESULT!=0) {printf("10.0.0.1:%i inactive\n",i); } WSACleanup(); |
B3层 发表时间: 03/26 00:40 |
![]() | 回复: ricky [ricky] ![]() |
登录 |
顶楼的好好学学286的程序,不要再在循环内部放一堆垃圾了,编程序是一种严谨的工作,好的编程风格时很重要的 |
B4层 发表时间: 03/26 08:42 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号