本文小編為大家詳細(xì)介紹“Python如何編寫nmap掃描工具”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python如何編寫nmap掃描工具”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
10年積累的成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先做網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有康樂免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
NMAP是一款開源的網(wǎng)絡(luò)探測和安全審核的工具,他能夠快速的掃描出某個服務(wù)器對外暴露的端口信息。是在安全測試領(lǐng)域很常見的一個工具。
今天我們用python的模擬實現(xiàn)一個簡單版本的端口掃描工具,主要使用到socket模塊,socket模塊中提供了connect()和connect_ex()兩個方法,其中connect_ex()方法有返回值,返回值是一個int類型的數(shù)字,標(biāo)記是否連接成功,0為連接成功,其他數(shù)字表示有異常。
def connect(self, address: Union[_Address, bytes]) -> None: ... def connect_ex(self, address: Union[_Address, bytes]) -> int: ...
def scan_tools_v1(self): host = input("請輸入服務(wù)器ip地址:") port = int(input("請輸入要掃描的端口:")) sk = socket.socket() sk.settimeout(0.1) conn_result = sk.connect_ex((host, port)) if conn_result == 0: print("服務(wù)器{}的{}端口已開放".format(host, port)) else: print("服務(wù)器{}的{}端口未開放".format(host, port)) sk.close()
運行結(jié)果:
D:SoftwarePythonPython39python.exe D:/MyScripts/study_srripts/SockerTools/nmap_tools.py
請輸入服務(wù)器ip地址:8.129.162.225
請輸入要掃描的端口:8080
服務(wù)器8.129.162.225的8080端口已開放
缺點:
1、一次只能掃描一個端口
def scan_tools_v2(self): host = input("請輸入服務(wù)器ip地址:") ports = input("請輸入要掃描的端口范圍,格式0-65536:") port_start, port_end = ports.split("-") count = 0 for port in range(int(port_start), int(port_end)+1): sk = socket.socket() sk.settimeout(0.1) conn_result = sk.connect_ex((host, port)) if conn_result == 0: print("服務(wù)器{}的{}端口已開放".format(host, port)) count += 1 sk.close() if count == 0: print(f"服務(wù)器{host}的{ports}端口均未開放")
輸出結(jié)果只輸出已開放的端口信息,如果輸入的端口范圍中,沒有一個端口開放,那么就直接輸出端口未開放。
總結(jié):
1、以上只是一個簡易的版本,如果掃描服務(wù)器全量端口的話,耗時較長,后面可以考慮用多線程的技術(shù)再進行優(yōu)化。
2、代碼中針對異常輸入未進行校驗,可以優(yōu)化
3、要注意ip為字符串類型,端口為int類型,socket對象初始化要放到循環(huán)里面,并且要設(shè)置超時時間,不然默認(rèn)的連接要好長時間才返回結(jié)果。
讀到這里,這篇“Python如何編寫nmap掃描工具”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標(biāo)題:Python如何編寫nmap掃描工具
本文地址:http://chinadenli.net/article26/joiojg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計公司、商城網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)