Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn)
一、socket
1.簡介
Socket又稱"套接字",應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求,使主機(jī)間或者一臺計算機(jī)上的進(jìn)程間可以通訊。
socket的工作流程
- socket 采用C/S 模式,分為服務(wù)端和客戶端
- 服務(wù)端數(shù)據(jù)處理流程
- 創(chuàng)建socket -> 綁定到地址和端口 -> 等待連接 -> 開始通信-> 關(guān)閉連接
- 客戶端數(shù)據(jù)處理流程
- 創(chuàng)建socket -> 等待連接 -> 開始通信-> 關(guān)閉連接
- 客戶端沒有綁定地址和端口,是由于客戶端進(jìn)程采用的是隨機(jī)端口,當(dāng)客戶端要去連接目標(biāo)時,會由系統(tǒng)自定分配一個端口號和自身ip地址去組合
2.利用方法
函數(shù) | 描述 |
---|---|
s.settimeout(timeout) | 設(shè)置套接字操作的超時期,timeout是一個浮點數(shù),單位是秒。值為None表示沒有超時期。一般,超時期應(yīng)該在剛創(chuàng)建套接字時設(shè)置,因為它們可能用于連接的操作(如connect()) |
s.connect() | 主動初始化TCP服務(wù)器連接,。一般address的格式為元組(hostname,port),如果連接出錯,返回socket.error錯誤。 |
二、代碼
1.源代碼
#!/user/bin/ # -*- coding:UTF-8 -*- # Author:Master_sir # Version:python2.7 import socket,sys dk = [] for i in range(0,65536): dk.append(i) ports = dk def IsOpen(ip,port): try: s = socket.socket() s.settimeout(1) s.connect((ip,port)) return True except: return False pass def PortScan(ip): for p in ports: if IsOpen(ip,p): sys.stderr.write('%s:%s is open\n' % (ip,p)) PortScan('xxx.xxx.xxx.xxx') #要掃描的ip
2.執(zhí)行實例
到此這篇關(guān)于Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python socket端口掃描工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)上下班搶個順風(fēng)單腳本
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)上下班搶個順風(fēng)單腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02Flask?+?MySQL如何實現(xiàn)用戶注冊,登錄和登出的項目實踐
本文主要介紹了Flask?+?MySQL?如何實現(xiàn)用戶注冊,登錄和登出的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Python基礎(chǔ)學(xué)習(xí)之模塊的安裝和卸載
其實現(xiàn)在還是有很多剛開始學(xué)習(xí)的小伙伴,會遇到模塊不會安裝的情況,或者一遇到報錯就懵了,這樣就很耽誤我們的學(xué)習(xí)進(jìn)度。所以,今天我們就來了解一下Python幾種安裝模塊的方法吧2022-09-09Python實現(xiàn)四舍五入的兩個方法總結(jié)
這篇文章主要介紹了python中實現(xiàn)四舍五入的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09Python使用pyinstaller打包含有g(shù)ettext?locales語言環(huán)境的項目(推薦)
最近在用 pyhton 做一個圖片處理的小工具,順便接觸了gettext,用來實現(xiàn)本地化化中英文轉(zhuǎn)換,本文通過一個項目給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧2022-01-01python中pandas.DataFrame排除特定行方法示例
這篇文章主要給大家介紹了關(guān)于python中pandas.DataFrame排除特定行的方法,文中給出了詳細(xì)的示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03