返回列表 发帖

扫描器0.1源代码

[这个贴子最后由黑色海岸线在 2004/10/09 03:25pm 第 2 次编辑] /* this program should be compiled with gcc in linux it belongs to www.thysea.com and be programmed by blackghost. copyright@www.thysea.com */ #include #include #include #include #include #include #include #include #include /////////////////////// struct SPORT{ int min; int max; }; struct ADDR{ char min[15]; char max[15]; } addr_in; struct DADDR{ int addr[4]; }min,max; static int ipcount=0; int connecttcp(long addr,int port); int cmpip(int * min,int *max); int getnextip(); int exdtoc(int*a); ////////////////////// int main(int argc,char *argv[]) { struct SPORT sport; int nsock; long count=0; int cport=0; int l=0; for(;l<4;l++) min.addr[l]=max.addr[l]=0; printf("input the port limit\n"); scanf("%d,%d",&sport.min,&sport.max); printf("input the low ip and high ip:\n"); scanf("%d.%d.%d.%d",&min.addr[0],&min.addr[1],&min.addr[2],&min.addr[3]); scanf("%d.%d.%d.%d",&max.addr[0],&max.addr[1],&max.addr[2],&max.addr[3]); //assume min0) { printf("error min>max\n"); exit(0); } while(getnextip()==0) { printf("this is the scan of ip=%s\n",addr_in.min); for(cport=sport.min;cport0) { printf("yeah %d is ok!\n",cport); shutdown(nsock,2); } } } printf("scan is over,bye"); exit(0); } int connecttcp(long addr,int port){ struct sockaddr_in sin; int s; memset(&sin,0,sizeof(sin)); sin.sin_family=AF_INET; sin.sin_port=htons(port); sin.sin_addr.s_addr=addr; s=socket(PF_INET,SOCK_STREAM,0); if(s<0) { printf("error create socket\n"); return -1; } if(connect(s,(struct sockaddr*)&sin,sizeof(sin))<0) { printf("can't connect to %d\n",port); return -2; } return s; } int cmpip(int *min,int *max){ if(min[0]>max[0]) return 1; else { if(min[0]max[1]) return 1; else { if(min[1]max[2]) return 1; else { if(min[2]max[3]) return 1; else return 0; } } } } } } } int getnextip(){ if(min.addr[3]==255) { min.addr[3]=0; if(min.addr[2]==255) { min.addr[2]=0; if(min.addr[1]==255) { min.addr[1]=0; if(min.addr[0]==255) {printf("error too large ip,i can't think it is possible? \n"); exit(0); } else min.addr[0]++; } else min.addr[1]++; } else min.addr[2]++; } else min.addr[3]++; if(cmpip(min.addr,max.addr)>0) { printf("scan over,thank you for use \n"); exit(0); } return exdtoc(min.addr); } int exdtoc(int* a){ int itmp,dtmp; int i=0,j=0,k=0; char cstack[3]; for(;i<4;i++) { itmp=a;k=0; while(itmp/10!=0){ cstack[k++]=(char)(itmp%10+48); itmp/=10; } cstack[k]=(char)(itmp+48); for(;k>=0;k--) addr_in.min[j++]=cstack[k]; if(i<3) addr_in.min[j++]='.'; } addr_in.min[j]=0; return 0; } -- 我就是blackghost

扫描器0.1源代码

具体点好不好,其实我还要改进的,还要加入ping程序来判断对方是否开机了,从而险少不必要得端口扫描

TOP

扫描器0.1源代码

怎么跳过防火墙是要考虑的,有时候装了防火墙是ping不通的……,还有几种ping的命令是很有用的,小佳,在linux网络技术里好象有!

TOP

扫描器0.1源代码

对呀,我就是为有防火墙的主机感到束手五策呢,
    有什么技术可以避开呀

TOP

扫描器0.1源代码

    恩,不错.

TOP

扫描器0.1源代码

顶  

TOP

扫描器0.1源代码

对 对 多发一点这样的源代码呀

TOP

扫描器0.1源代码

支持

TOP

扫描器0.1源代码

美丽风景!

TOP

扫描器0.1源代码

[这个贴子最后由damnyou在 2004/07/04 09:55pm 第 1 次编辑]

    不知道兄弟做的扫描器速度怎么样?

    我用perl做的那个PORT SCANNER扫描速度比较慢
    有空加上PING和从主机列表中扫描
    等我电脑买了后把CGI扫描也上传了给大家测试一下。
    总之似乎用perl 做这个好象效率部够高啊。
    以后可能我也想改VC试试

TOP

扫描器0.1源代码

嗳~~~~~~~~~~~
我看不了!

TOP

扫描器0.1源代码

怎么说话都是几个字的啊能不能固体点啊
很难看清楚耶

TOP

扫描器0.1源代码

没有威望还不让看啊。。。

TOP

扫描器0.1源代码

我努力,我努力,我再努力,我为什么看不到?

TOP

扫描器0.1源代码

您没有权限看这个帖子,您的威望至少需要 5~!!
好东西大家分享吗

TOP

返回列表 回复 发帖