国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python基于socket函數實現端口掃描

瀏覽:6日期:2022-07-24 08:33:35

本文實例為大家分享了python基于socket實現端口掃描的具體代碼,供大家參考,具體內容如下

自學Python一段時間,寫個端口掃描器練練手。有什么不足之處,請見諒這是基于socket函數對端口進行端口掃描

所以,首先要導入socket模塊

from socket import *

其次,通過正側表達式來判斷輸入的是不是IP地址

compile_ip = re.compile( ’^(1d{2}|2[0-4]d|25[0-5]|[1-9]d|[1-9]).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d)$’)

這里是核心代碼

# -*- coding: utf-8 -*-from socket import *import refrom pip._vendor.distlib.compat import raw_inputdef portscaner(host,port): try: s = socket(AF_INET, SOCK_STREAM) # 實例化socket s.connect((host,port)) #對對應主機的對應端口發起連接 print(’主機%s的%s端口處于打開狀態’%(host,port)) s.close() #關閉連接 Export_Data(port) #調用Export_Date except Exception as e: pass #利用異常處理,對無法建立連接的端口pass掉def ChecK_Host(host): #利用正側表達式匹配host,判斷是否符合IP地址的格式 并且輸入不為空 compile_ip = re.compile( ’^(1d{2}|2[0-4]d|25[0-5]|[1-9]d|[1-9]).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d)$’) if compile_ip.match(host) and len(host)!=0: #host符合IP地址的格式且不為空值返回True,否則返回False return True else: return False def Export_Data(port): #導出數據 port = str(port) #將port轉換為字符串類型 date = open(’Active_Port.txt’, ’a’) #在文件尾部寫入數據,Active_Port.txt,若不存在就新建文件 date.write(port+’n’) #將port并行寫入文件 date.close() #不要忘了關閉文件def main(host): #主模塊 if ChecK_Host(host): #通過ChecK_Host()函數return 的布爾值進行判斷輸入的IP地址是否有誤 for port in range(1,65536): #這里可以改成1024 portscaner(host, port) print(’n’) print(’已將結果導出到 Active_Port.txt’) else: print(’IP地址無錯誤,請重新輸入!!!’)if __name__ == ’__main__’: print(’<’ * 12 + ’單線程端口掃描器’ + ’>’ * 12) host = input(’請輸入有效的目標IPv4地址:’) main(host)raw_input(’Press Enter to exit...’) #當腳本執行完后,等待鍵入Enter回車才退出程序(可有可無,主要是為了封裝成exe可執行文件后,執行完程序dos界面不自動退出)

測試結果

可見目的主機的21端口處于開放狀態

python基于socket函數實現端口掃描

掃描結束后,將存活的端口寫入到Active_Port.txt

python基于socket函數實現端口掃描

這里沒有用到多線程,通過循環,一個一個端口進行連接,掃描速度非常慢。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 宜阳县| 宜黄县| 鲁甸县| 齐齐哈尔市| 滁州市| 长沙市| 云和县| 慈溪市| 察隅县| 常熟市| 潜江市| 珲春市| 溧水县| 金寨县| 朝阳市| 苏尼特右旗| 来凤县| 霍邱县| 囊谦县| 盖州市| 贵德县| 溆浦县| 平阳县| 铜鼓县| 蒲城县| 大理市| 正定县| 临湘市| 临澧县| 塔城市| 叶城县| 宣恩县| 荃湾区| 岑溪市| 方城县| 台中县| 勃利县| 宜城市| 易门县| 宁陕县| 晋江市|