Python實(shí)現(xiàn)的端口掃描功能示例
本文實(shí)例講述了Python實(shí)現(xiàn)的端口掃描功能。分享給大家供大家參考,具體如下:
一 代碼
import sys import socket import multiprocessing def ports(ports_service): #獲取常用端口對(duì)應(yīng)的服務(wù)名稱 for port in list(range(1,100))+[143,145,113,443,445,3389, 8080]: try: ports_service[port] = socket.getservbyport(port) except socket.error: pass def ports_scan(HOST, ports_service): ports_open = [] try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #sock.settimeout(60) except socket.error: print('socket creation error') sys.exit() for port in ports_service: try: #嘗試連接指定端口 sock.connect((HOST,port)) #記錄打開的端口 ports_open.append(port) sock.close() except socket.error: pass return ports_open if __name__=='__main__': m = multiprocessing.Manager() ports_service = dict() results = dict() ports(ports_service) #創(chuàng)建進(jìn)程池,允許最多8個(gè)進(jìn)程同時(shí)運(yùn)行 pool = multiprocessing.Pool(processes=8) net = '192.168.0.' for host_number in map(str,range(105,106)): host = net+host_number #創(chuàng)建一個(gè)新進(jìn)程,同時(shí)記錄其運(yùn)行結(jié)果 results[host] = pool.apply_async(ports_scan, (host, ports_service)) print('starting '+host+'...') #關(guān)閉進(jìn)程池,close()必須在join()之前調(diào)用 pool.close() #等待進(jìn)程池中的進(jìn)程全部執(zhí)行結(jié)束 pool.join() #打印輸出結(jié)果 for host in results: print('='*30) print(host,'.'*10) for port in results[host].get(): print(port, ':', ports_service[port])
二 運(yùn)行結(jié)果
starting 192.168.0.105...
==============================
192.168.0.105 ..........
80 : http
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python URL操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用matlab 判斷兩個(gè)矩陣是否相等的實(shí)例
這篇文章主要介紹了使用matlab 判斷兩個(gè)矩陣是否相等的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法,涉及Python針對(duì)文件與目錄的遍歷、判斷、修改、復(fù)制及文件屬性的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09python用socket實(shí)現(xiàn)協(xié)議TCP長連接框架
大家好,本篇文章主要講的是python用socket實(shí)現(xiàn)協(xié)議TCP長連接框架,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02Python面試不修改數(shù)組找出重復(fù)的數(shù)字
這篇文章主要為大家介紹了不修改數(shù)組找出重復(fù)的數(shù)字Python實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05在Python的struct模塊中進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換的方法
這篇文章主要介紹了在Python的struct模塊中進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換的方法,文中還給出了C語言和Python語言的數(shù)據(jù)類型比較,需要的朋友可以參考下2015-06-06Python中的list.sort()方法和函數(shù)sorted(list)
這篇文章主要介紹了Python中的list.sort()方法和函數(shù)sorted(list),sort()是列表的方法,修改原列表使得它按照大小排序,沒有返回值,返回None2022-08-08解決AttributeError:'NoneTypeobject'?has?no?attrib
這篇文章主要介紹了解決AttributeError:?‘NoneType‘?object?has?no?attribute?‘Window‘的問題(親測有效),本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03python 實(shí)現(xiàn)語音聊天機(jī)器人的示例代碼
這篇文章主要介紹了python 實(shí)現(xiàn)語音聊天機(jī)器人的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12Python使用win32com實(shí)現(xiàn)的模擬瀏覽器功能示例
這篇文章主要介紹了Python使用win32com實(shí)現(xiàn)的模擬瀏覽器功能,結(jié)合實(shí)例形式分析了Python基于win32com模塊實(shí)現(xiàn)網(wǎng)頁的打開、登陸、加載等功能相關(guān)技巧,需要的朋友可以參考下2017-07-07Python數(shù)據(jù)結(jié)構(gòu)之鏈表詳解
在順序存儲(chǔ)方式中,根據(jù)數(shù)據(jù)元素的序號(hào)就可隨機(jī)存取表中任何一個(gè)元素,但同時(shí)在插入和刪除運(yùn)算需要移動(dòng)大量的元素,造成算法效率較低。解決此缺陷的一個(gè)辦法是:對(duì)線性表采用鏈?zhǔn)酱鎯?chǔ)方式。本文將介紹鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)以及各種基本操作的實(shí)現(xiàn)。需要的可以參考一下2022-01-01