论坛: 编程破解 标题: 一个简单扫描器源程序~~help 复制本贴地址    
作者: 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号