Python實(shí)現(xiàn)的IP端口掃描工具類示例
本文實(shí)例講述了Python實(shí)現(xiàn)的IP端口掃描工具類。分享給大家供大家參考,具體如下:
去年服務(wù)器老是被攻擊,每次上線之后,上線的人急急忙忙下班,忘記關(guān)閉一些端口。導(dǎo)致有次服務(wù)器被攻破。損失嚴(yán)重。
這段時(shí)間再做儀器對(duì)接,把醫(yī)療器械對(duì)接到我們SAAS平臺(tái),有些儀器是通過網(wǎng)線進(jìn)行數(shù)據(jù)傳輸?shù)?。通過網(wǎng)線進(jìn)行數(shù)據(jù)傳輸,無非就是通過端口號(hào)進(jìn)行傳輸交互,但是找不到說明書,國內(nèi)搞儀器對(duì)接開發(fā)的也很少,所以網(wǎng)上開源的或者介紹的東西很少,對(duì)于我們來說,儀器是個(gè)黑盒,想要拿到里面的東西,還要自己去摸索,去試驗(yàn),比較浪費(fèi)時(shí)間,腦子一轉(zhuǎn)就想到了之前自己寫的端口掃描工具,連到一個(gè)局域網(wǎng),一鍵找到開放的端口,直接端口鏈接上,拿到數(shù)據(jù),分分鐘解決了拿數(shù)據(jù)的問題。
所以好東西要分享出來。
目前我發(fā)現(xiàn)的用處:
1,服務(wù)器上線之后的掃描工具,那些端口要開放那些不能開放,掃一掃就知道了。
2,當(dāng)確定對(duì)方是通過端口傳輸?shù)?,但是不知道端口?hào),是人是妖,你也掃一掃(用端口號(hào)去傳輸數(shù)據(jù)比藍(lán)牙什么的快多了,只要你的數(shù)據(jù)足夠大,上傳和下載帶寬可以打滿你的手機(jī)所支持的帶寬)。
3,想看看自己的手機(jī)那些端口號(hào)被開放了,在設(shè)置中找到自己的IP 或者下載個(gè)命令行執(zhí)行工具 ifconfig下就知道了。
注意的是 不同的電腦不同的CPU 每次最多創(chuàng)建的線程是不一樣的,可能創(chuàng)建線程過多,會(huì)報(bào)錯(cuò),所以如果報(bào)錯(cuò),自己修改下,每次掃描的個(gè)數(shù),再剪成更小的段就可以了,或者再把seelp的時(shí)間設(shè)置的更長(zhǎng)一些,保證能把0-65536之間的端口掃描一遍就可以了
# -*- coding:utf8 -*-
import socket, time, thread
import os
from time import sleep
socket.setdefaulttimeout(1)
def socket_port(ip,port):
try:
if port>=65535:
return
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result=s.connect_ex((ip,port))
if result==0:
lock.acquire()
print ip,u':',port,u'端口開放'
lock.release()
s.close()
except Exception,e:
pass
def ip_scan(ip):
"""
輸入IP,掃描IP的0-65534端口情況
"""
try:
print u'開始掃描 %s' % ip
start_time=time.time()
for j in range(0,660):
for i in range(j*100,100*(j+1)):
thread.start_new_thread(socket_port,(ip,int(i)))
sleep(0.1)#休眠 防止線程創(chuàng)建的過多報(bào)錯(cuò)(can not create new start thread)
print u'掃描端口完成,總共用時(shí) :%.2f' %(time.time()-start_time)
except Exception,e :
print u'掃描ip出錯(cuò)'
if __name__=='__main__':
lock=thread.allocate_lock()
ip_scan('192.168.3.37')
運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python進(jìn)程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
OpenCV4.1.0+VS2017環(huán)境配置的方法步驟
這篇文章主要介紹了OpenCV4.1.0+VS2017環(huán)境配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
LyScript實(shí)現(xiàn)內(nèi)存交換與差異對(duì)比的方法詳解
LyScript?針對(duì)內(nèi)存讀寫函數(shù)的封裝功能并不多,只提供了內(nèi)存讀取和內(nèi)存寫入函數(shù)的封裝,本篇文章將繼續(xù)對(duì)API進(jìn)行封裝,實(shí)現(xiàn)一些在軟件逆向分析中非常實(shí)用的功能,需要的可以參考一下2022-08-08
python 利用matplotlib在3D空間繪制二次拋物面的案例
這篇文章主要介紹了python 利用matplotlib在3D空間繪制二次拋物面的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Python通過RabbitMQ服務(wù)器實(shí)現(xiàn)交換機(jī)功能的實(shí)例教程
RabbitMQ是一個(gè)基于消息隊(duì)列的服務(wù)器程序,Python可以通過Pika庫來驅(qū)動(dòng)它,這里我們將來看一個(gè)Python通過RabbitMQ服務(wù)器實(shí)現(xiàn)交換機(jī)功能的實(shí)例教程:2016-06-06
一文詳解如何實(shí)現(xiàn)PyTorch模型編譯
這篇文章主要為大家介紹了如何實(shí)現(xiàn)PyTorch?模型編譯詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python簡(jiǎn)單實(shí)現(xiàn)自動(dòng)刪除目錄下空文件夾的方法
這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)自動(dòng)刪除目錄下空文件夾的方法,涉及Python針對(duì)文件與目錄的讀取、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Python 相對(duì)路徑和絕對(duì)路徑及寫法演示
這篇文章主要介紹了Python 相對(duì)路徑絕對(duì)路徑的相關(guān)知識(shí),結(jié)合實(shí)例代碼介紹了Python 相對(duì)路徑、絕對(duì)路徑的寫法實(shí)例演示,需要的朋友可以參考下2023-02-02

