首页 > Windows开发 > 详细

端口快速扫描程序(c#版 一次可发起1000个连接)

时间:2019-06-08 12:57:28      阅读:95      评论:0      收藏:0      [点我收藏+]

前言 为了探测本机或对方开放了哪些端口,需要用到端口扫描程序。扫描端口的原理很简单:就是尝试连接对方;如果成功,对方就开放了此端口。扫描程序的关键是速度,如果一次只能发起几个连接,显然速度太慢。如果对方的端口没开放,发起一次连接到知道连接失败通常需要几秒的时间。

本程序可以实现一次性发起1000个连接(这个连接数可以设定),如果这1000个连接,有某个连接知道了结果,就会继续发起连接。总之,程序正在尝试的连接保持在1000个。这样扫描的速度就会大大增加。

注:一次性发起的连接数可以远超1000个,但是这样可能会导致程序占用资源太多;再者,对方服务器发现大量有正在尝试的连接,可能会拒绝服务:即使有些端口开放了,也探测失败。

下载地址:端口快速扫描程序。

 

实现原理

iocp是Windows下最高效的处理socket方式。iocp不仅可以作为服务端,也可以作为客户端发起连接,实现原理基本一样。如果客户端发起1000个连接,程序并不会启用1000个线程,而是充分利用了iocp底层处理机制。具体实现原理本文不多述。

程序使用

技术分享图片

设置好ip和端口,点击添加,程序会开始扫描。扫描结果列表显示。可以将列表结果复制到剪切板。

后记:程序的难点就是实现iocp封装。端口扫描只是iocp的一个小小的应用。本人多年前就开始接触iocp编程,对iocp实现了很好的封装;封装库非常易于使用,扫描程序就是使用此封装库实现的。只用短短的半天就开发完成。

 

端口快速扫描程序(c#版 一次可发起1000个连接)

原文:https://www.cnblogs.com/yuanchenhui/p/iocp_scan.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!