端口快速掃描程序(c#版 一次可發起1000個連接)


前言 為了探測本機或對方開放了哪些端口,需要用到端口掃描程序。掃描端口的原理很簡單:就是嘗試連接對方;如果成功,對方就開放了此端口。掃描程序的關鍵是速度,如果一次只能發起幾個連接,顯然速度太慢。如果對方的端口沒開放,發起一次連接到知道連接失敗通常需要幾秒的時間。

本程序可以實現一次性發起1000個連接(這個連接數可以設定),如果這1000個連接,有某個連接知道了結果,就會繼續發起連接。總之,程序正在嘗試的連接保持在1000個。這樣掃描的速度就會大大增加。

注:一次性發起的連接數可以遠超1000個,但是這樣可能會導致程序占用資源太多;再者,對方服務器發現大量有正在嘗試的連接,可能會拒絕服務:即使有些端口開放了,也探測失敗。

下載地址:端口快速掃描程序。

 

實現原理

iocp是Windows下最高效的處理socket方式。iocp不僅可以作為服務端,也可以作為客戶端發起連接,實現原理基本一樣。如果客戶端發起1000個連接,程序並不會啟用1000個線程,而是充分利用了iocp底層處理機制。具體實現原理本文不多述。

程序使用

設置好ip和端口,點擊添加,程序會開始掃描。掃描結果列表顯示。可以將列表結果復制到剪切板。

后記:程序的難點就是實現iocp封裝。端口掃描只是iocp的一個小小的應用。本人多年前就開始接觸iocp編程,對iocp實現了很好的封裝;封裝庫非常易於使用,掃描程序就是使用此封裝庫實現的。只用短短的半天就開發完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM