|
![]() | 作者: coolcall [coolcall]
![]() |
登录 |
通过几天的对VC的学习,我东拼西凑地写了个程序有几个问题不解 #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; char abcd[20]={"61.139.245.001"}; char *buf=&abcd[0]; int i,y,j=1,x=1; printf("start\n"); for(y=1;y<256;y++) {x++; j++; LRESULT=WSAStartup(0x0101,&ws); s=socket(PF_INET,SOCK_STREAM,0); addr.sin_family=PF_INET; if(j==11){j=1;abcd[12]++;abcd[13]='0';} if(x==101){x=1;abcd[11]++;abcd[12]='0';} addr.sin_addr.s_addr=inet_addr(buf); addr.sin_port=htons(135); if(s==INVALID_SOCKET) break; RESULT=connect(s,(struct sockaddr*)&addr,sizeof(addr)); if(RESULT!=0) {printf("%s:135 inactive\n",buf); } else{ printf("%s:135 on\n",buf); scanf("%d",&i); } abcd[13]++; } } 这是对一个域的主机开的135端口进行扫描; 请问这是什么意思?我在程序里去掉他不行#pragma comment(lib,"ws2_32"); 为什么扫描得那么慢?? (先不说多线程)扫描器是这样做的吗? |
地主 发表时间: 05/08 10:28 |
![]() | 回复: 286 [unique] ![]() |
登录 |
1. 请问这是什么意思?我在程序里去掉他不行#pragma comment(lib,"ws2_32"); 不行,必须有,否则将报编译错误. 2. 为什么扫描得那么慢?? 因为当对方不开机时,对该IP的连接肯定连不上,这样要到时间溢出时,才结束, 所以慢.如果你扫的网段内所有IP主机都开着.就会快一些. 3.(先不说多线程)扫描器是这样做的吗? 是的. #include <winsock2.h> #include "stdio.h" #pragma comment(lib,"ws2_32") #include <stdlib.h> #include <windows.h> void main() { WSADATA ws; long LRESULT; LRESULT=WSAStartup(0x0101,&ws);//该句初始化用,一次就够了. SOCKET s; struct sockaddr_in addr; int RESULT; int a=61,b=139,c=245,d; char buf[20]; printf("start.........\n"); s=socket(PF_INET,SOCK_STREAM,0); if(s==INVALID_SOCKET) return; addr.sin_family=PF_INET; addr.sin_port=htons(135); for(y=1;y<256;y++) { sprint(buf,"%d.%d.%d.%d",a,b,c,d); addr.sin_addr.s_addr=inet_addr(buf); RESULT=connect(s,(struct sockaddr*)&addr,sizeof(addr)); if(RESULT!=0) printf("%s:135 inactive\n",buf); else printf("%s:135 on\n",buf); } closesocket(s); //这个别忘了. } |
B1层 发表时间: 05/08 12:29 |
![]() | 回复: coolcall [coolcall] ![]() |
登录 |
1. 请问~~~~,Sprintf();这函数是那个库的??(好像见过,但想不起来了)它应该是流的一类吗? 2。 我想int a=61,b=139,c=245,d;中的d,不要了吧!因为有了个y。(程序还没能编译,我把想法先讲出来,不懂对不对)。 |
B2层 发表时间: 05/08 23:55 |
![]() | 回复: 286 [unique] ![]() |
登录 |
1. 不好意思,打错了,应该是sprintf,我也记不清是哪个库的,我遇到不MSDN中有个例子,其例的头文件只有stdio.h,所以,我想可能有这个就行了. 2. 该程序我也没编译,那个y应该变成d吧.不然,扫描的只是一个IP的. 我只是就你问题而答.如果你想再改进他,可能要改的地方还有很多. 你的这个扫描器相当于段IP同一端口的扫描,该类扫描器作用一般意义不太大.一般这类段IP扫同一端口的扫描器都是扫服务的.即使是端口扫描器,一般要扫描多个端口. |
B3层 发表时间: 05/09 09:07 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号