免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2685 | 回复: 7
打印 上一主题 下一主题

linux下的socket可以连续连接不同的server吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-12 20:12 |只看该作者 |倒序浏览
要做一个端口扫描程序,运行在linux下。
想问一个问题:通过socket的connect,根据连接成功或失败,能不能作为端口开启的依据?

如果扫描某个端口,连接上了,如何继续用这个socket连接下一个端口?shutdown之后再connect,不行。能不能通过调用setsockopt使socket重复使用?

本来可以采用close之后,再创建一个socket的办法。不过epoll的脾气很怪,此时如果创建socket,对这个socket会一直收到EPOLLOUT消息,而我就是根据异步connect之后,产生的消息是EPOLLERR还是EPOLLOUT,来断定connect是否成功,这样就被干扰了。

论坛徽章:
0
2 [报告]
发表于 2008-07-12 20:36 |只看该作者
能不能写个循环 依次connect每个端口? 根据connect的返回值判断是否成功

不是有开源的端口扫描程序吗 看看人家是怎么写的

论坛徽章:
0
3 [报告]
发表于 2008-07-12 20:54 |只看该作者
谢谢tassard的回答,能不能提供开源的端口扫描程序的下载地址?

依次connect太慢,一个ip要扫描65535个端口,要10秒左右,而公司服务器有几千台,开多线程也不能满足需求。

epoll好处是不用开线程,很多个(究竟最多会是多少,请教达人)socket可以同时connect,根据epoll监测到的消息是EPOLLERR还是EPOLLOUT,分别判断连接是失败和成功。

失败了好说,可以接着connect。如果成功了,如何继续connect新的ip、端口组合?

或者,close掉这个socket,重新创建一个补上,怎样才不会在epoll中不断产生EPOLLOUT消息?

论坛徽章:
0
4 [报告]
发表于 2008-07-12 21:14 |只看该作者
找到一个nmap有unix版和windows版的源代码
http://nmap.org/download.html

我记得有个环境变量可以控制打开的文件数,修改这个环境变量就能控制最大的文件数。但名字想不起来了,请教高手。

论坛徽章:
0
5 [报告]
发表于 2008-07-12 22:04 |只看该作者
原帖由 tassard 于 2008-7-12 21:14 发表
找到一个nmap有unix版和windows版的源代码
http://nmap.org/download.html

我记得有个环境变量可以控制打开的文件数,修改这个环境变量就能控制最大的文件数。但名字想不起来了,请教高手。


ulimit -n

论坛徽章:
0
6 [报告]
发表于 2008-07-14 19:43 |只看该作者
谢谢以上几位的回答。

今天不用epoll了。直接用多线程,在线程里connect。

connect失败后,可以接着connect下一个server。

connect成功,就close掉,再创建一个。

扫描速度还可以,局域网环境下,开30个线程,一个线程扫描一个ip的65535个端口,大概只要十来秒。

问题是,tip/ip的connect,有三次握手。服务器的网管,把这个三次握手禁掉,一次都不回,connect的

时候,一直等待对方返回数据包,而停在哪里。

如果设置超时的话,那没有意义了。连接每个端口都超时,太慢了。

只好看看能不能利用现有的扫描工具,把扫描结果重定向到文本中,分析文本。

有人对这个了解的话,给点指教。

论坛徽章:
0
7 [报告]
发表于 2008-07-29 12:28 |只看该作者
项目结束了。
最后用system调用nmap,分析结果文本。多线程调用。

论坛徽章:
0
8 [报告]
发表于 2008-07-29 12:30 |只看该作者
看netcat(nc)的代码,也可以扫描端口.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP