Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn)
更新時間:2021年01月27日 09:39:30 作者:Master先生
這篇文章主要介紹了Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
一、socket
1.簡介
Socket又稱"套接字",應用程序通常通過"套接字"向網絡發(fā)出請求或者應答網絡請求,使主機間或者一臺計算機上的進程間可以通訊。
socket的工作流程
- socket 采用C/S 模式,分為服務端和客戶端
- 服務端數據處理流程
- 創(chuàng)建socket -> 綁定到地址和端口 -> 等待連接 -> 開始通信-> 關閉連接
- 客戶端數據處理流程
- 創(chuàng)建socket -> 等待連接 -> 開始通信-> 關閉連接
- 客戶端沒有綁定地址和端口,是由于客戶端進程采用的是隨機端口,當客戶端要去連接目標時,會由系統(tǒng)自定分配一個端口號和自身ip地址去組合
2.利用方法
函數 | 描述 |
---|---|
s.settimeout(timeout) | 設置套接字操作的超時期,timeout是一個浮點數,單位是秒。值為None表示沒有超時期。一般,超時期應該在剛創(chuàng)建套接字時設置,因為它們可能用于連接的操作(如connect()) |
s.connect() | 主動初始化TCP服務器連接,。一般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í)行實例
到此這篇關于Python利用socket模塊開發(fā)簡單的端口掃描工具的實現(xiàn)的文章就介紹到這了,更多相關Python socket端口掃描工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Flask?+?MySQL如何實現(xiàn)用戶注冊,登錄和登出的項目實踐
本文主要介紹了Flask?+?MySQL?如何實現(xiàn)用戶注冊,登錄和登出的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06Python使用pyinstaller打包含有gettext?locales語言環(huán)境的項目(推薦)
最近在用 pyhton 做一個圖片處理的小工具,順便接觸了gettext,用來實現(xiàn)本地化化中英文轉換,本文通過一個項目給大家詳細介紹下,感興趣的朋友跟隨小編一起看看吧2022-01-01python中pandas.DataFrame排除特定行方法示例
這篇文章主要給大家介紹了關于python中pandas.DataFrame排除特定行的方法,文中給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03