• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

一个SCO UNIX下端口扫描的C程序

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 57次 | 进入软件测试论坛讨论

领测软件测试网
/*****************************************/
/* W.X.Y.2001-3 编译成功                 */
/* 运行于SCO UNIX 系统                   */
/*****************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <netdb.h>
#include <signal.h>

int main(int argc, char **argv)
{
int probeport = 0;
struct hostent *host;
int err, i, net;
int startport,endport;
struct sockaddr_in sa;

startport=1;
endport=700;
if(argc==3)
{
startport=endport=atoi(argv[2]);
}
if(argc==4)
{
startport=atoi(argv[2]);
endport=atoi(argv[3]);
}

for(i=startport;i<endport+1;i++)
{
strncpy((char *)&sa,"",sizeof sa);
sa.sin_family = AF_INET;

if(isdigit(*argv[1]))
sa.sin_addr.s_addr = inet_addr(argv [1]);
else if((host = gethostbyname(argv[1])) != 0)
strncpy((char *)&sa.sin_addr, (char *)host->h_addr,sizeof sa.sin_addr);
else 
{
/*pherror(argv [1]); */ 
printf("Usage: portscan address|hostname [start_port end_port]\n");
printf(" default port number from %d to %d\n",startport,endport);
exit (2);
}

sa.sin_port = htons(i);
net = socket(AF_INET,SOCK_STREAM,0);
if(net<0)
{
perror("\nsocket");
exit(2);
}
err = connect(net,(struct sockaddr *) &sa,sizeof sa);
if(err<0)
{
/* 
printf("%s %-5d %s\r",argv[1],i,strerror(errno));
*/ 
printf("\r");
fflush(stdout);
if(argc==3)
printf("%s %-5d refused. \n",argv[1],i);

else 
{
printf("%s %-5d accepted. \n",argv[1],i);
if(shutdown(net,2)<0)
{
perror("\nshutdown");
exit(2);
}
}
close(net);
}
printf("\r");
fflush(stdout);
return(0);
}

/*程序结束*/

/*编译方法:*/

/* $cc -o portscan portscan.c -lnsl -lsocket*/

 jysww 回复于:2003-02-19 22:43:15
up!

 yujf 回复于:2003-08-29 10:58:19
怎么没有注释呀?可以提供点吗?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网