色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python練手小程序

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-01-09 09:49 ? 次閱讀

如果管理網(wǎng)絡(luò)設(shè)備很多,不可能靠人力每天去登錄設(shè)備去查看是否在線。所以,可以利用python腳本通過每天掃描網(wǎng)絡(luò)中的在線設(shè)備。可以部署在服務(wù)器上做成定時任務(wù),每天發(fā)送AAA巡檢報告。

下面是我寫的一個python練手小程序。用來掃描一個網(wǎng)段中的在線主機,并嘗試AAA去登錄。統(tǒng)計一個大網(wǎng)段內(nèi)可以成功aaa登錄的主機。

注意:

該程序只是測試小程序,還有些小bug需要解決。不是通用的程序。主要提供一個大致思路。

主要用到了python-nmap, paramiko庫。

程序大概思路:

  1. 利用nmap掃描一個指定網(wǎng)段,只做ping掃描,所以前提所管理的設(shè)備中ping必須開啟。獲取存活設(shè)備IP列表。
  2. 利用paramiko庫模擬ssh去登錄個IP,如果登錄成功,返回設(shè)備名稱,并及將設(shè)備名稱和對應(yīng)ip寫入文件。

代碼示例:

#-*-coding:utf-8-*-

importnmap
importdatetime
importparamiko
importre

defget_name(host,user,password,port=22):
client=paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#client.connect(host,port,user,password,allow_agent=False,look_for_keys=False,timeout=5)
try:
client.connect(ip,port,user,password,allow_agent=False,look_for_keys=False,timeout=3)
exceptExceptionaserr:
return0,str(err)
#getshell
ssh_shell=client.invoke_shell()

dev_name=''
whileTrue:
line=ssh_shell.recv(1024)
ifline.endswith(b'>'):#華為華三
dev_name=re.findall(r'<(.*)>',str(line))[0]
#dev_name=str(line)[3:-2]
break
ifline.endswith(b'#')|line.endswith(b'#'):#思科
dev_name=re.findall(r'[\r\n|\r]+(.*)#',str(line))[0]
break
ifline.endswith(b'>'):
if'ConnetOS'instr(line):#分流器
dev_name=re.findall(r'[\r\n|\r]+(.*)>',str(line))[0].strip()
if'@'instr(line):#junpier防火墻
dev_name=re.findall(r'@(.*)>',str(line))[0].strip()
break
#怎么跳出recv阻塞
ssh_shell.close()
return1,dev_name


#print('掃描時間:'+res['nmap']['scanstats']['timestr']+'
命令參數(shù):'+res['nmap']['command_line'])

defget_ip_list(hosts):
nm=nmap.PortScanner()
#nmap填入?yún)?shù)列表可以填很多
res=nm.scan(hosts=hosts,arguments='-sn-PE')
#count=res['nmap']['scanstats']['uphosts']#存活的主機數(shù)
returnlist(res['scan'].keys())#存活主機IP地址


if__name__=='__main__':
start=datetime.datetime.now()
user='user'
password='password'
hosts='10.0.0.0/24'
dev={}#存放AAA登錄成功的主機
f=open('ip_list.txt','w')#存放能ping通的IP
ip_list=get_ip_list(hosts)
end=datetime.datetime.now()
#f.write("存活的IP地址有:"+ str(len(ip_list))+"
")
#f.write("程序運行時間:"+ str(end-start)+'
')
foripinip_list:
f.write(ip+'
')
f.close()
#print(ip_list)
login_failed_count=0
f1=open('login_succeed.txt','w',encoding='utf-8')
f2=open('login_failed.txt','w',encoding='utf-8')
f3=open('mtil_add.txt','w',encoding='utf-8')
#ip_list=ip_list.split('
')
foripinip_list:
ok,dev_name=get_name(ip,user,password)
ifok==1:
ifdev_namenotindev.keys():
vendor=''
print(dev_name+"		"+ip)
if'h'indev_name[-12:]:
vendor='h3c'
elif'c'indev_name[-12:]:
vendor='cisco'
elif'w'indev_name[-12:]:
vendor='huawei'
else:
vendor='unknow'
f1.write(dev_name+'		'+ip+'	'+vendor+'
')
f1.flush()
dev.update({dev_name:ip})
else:
f3.write(dev_name+'		'+str(dev[dev_name])+''+ip+'
')
print(dev_name+'		'+str(dev[dev_name])+''+ip+'
')
dev.update({dev_name:[dev[dev_name],ip]})
f3.flush()
else:
login_failed_count+=1
print(dev_name)
f2.write(dev_name+'		'+ip+'
')
f2.flush()
end=datetime.datetime.now()
f1.write('AAA登錄成功'+str(len(dev))+'臺
')
f1.write('AAA登錄失敗'+str(login_failed_count)+'臺
')
f1.write("程序運行時間:"+str(end-start)+'
')
f1.close()
f2.close()
f3.close()

print("程序運行時間:"+str(end-start)+'
')
print("存活的IP地址有:"+str(len(ip_list))+"
")
print("AAA登錄成功:"+str(len(dev))+"
")
print('AAA登錄失敗'+str(login_failed_count)+'臺
')

這個小程序例子,只是一個大概思路。

可以添加或則改善的思路:

  • 比想要獲取設(shè)備名,可以通過snmp,知道ip地址和snmp讀團體名就可以直接獲取。
  • 可以將獲取到的數(shù)據(jù)存入數(shù)據(jù)庫中,從而可以做更的事情。
  • 通過類似代碼,也可以實現(xiàn)每天去設(shè)備上備份網(wǎng)絡(luò)配置等功能。
  • 可以將利用掃描結(jié)果,添加更多處理邏輯,生成每日巡檢日報,通過郵件或者短信發(fā)送。

nmap庫使用:

nmap工具使用可參考:nmap掃描工具學(xué)習(xí)筆記

如果在windows上寫nmap庫,有兩個事要解決。

第一步:安裝nmap軟件

因為在python程序中,nmap包所調(diào)用的是nmap可執(zhí)行程序,所以必須先安裝nmap軟件。nmap下載地址:https://nmap.org/download.html

第二步: 需要在nmap庫中文件的init方法中添加的nmap.exe的路徑。

不然會報錯,提示找不到nmap。

在nmap.py的class PortScanner()中的__init__()中更改:

def__init__(self,nmap_search_path=('nmap','/usr/bin/nmap','/usr/local/bin/nmap','/sw/bin/nmap','/opt/local/bin/nmap',r"D:software
map-7.80
map.exe")):

主要添加了‘r"D:software map-7.80 map.exe", nmap.exe可執(zhí)行文件路徑。


importnmap
nm=nmap.PortScanner()
#nmap填入?yún)?shù)列表可以填很多
res=nm.scan(hosts=hosts,arguments='-sn-PE')

其他使用示例:

#!/usr/bin/envpython
importnmap#importnmap.pymodule
nm=nmap.PortScanner()#instantiatenmap.PortScannerobject
nm.scan('127.0.0.1','22-443')#scanhost127.0.0.1,portsfrom22to443
nm.command_line()#getcommandlineusedforthescan:nmap-oX--p22-443127.0.0.1
nm.scaninfo()#getnmapscaninformations{'tcp':{'services':'22-443','method':'connect'}}
nm.all_hosts()#getallhoststhatwerescanned
nm['127.0.0.1'].hostname()#getonehostnameforhost127.0.0.1,usualytheuserrecord
nm['127.0.0.1'].hostnames()#getlistofhostnamesforhost127.0.0.1asalistofdict
#[{'name':'hostname1','type':'PTR'},{'name':'hostname2','type':'user'}]
nm['127.0.0.1'].hostname()#gethostnameforhost127.0.0.1
nm['127.0.0.1'].state()#getstateofhost127.0.0.1(up|down|unknown|skipped)
nm['127.0.0.1'].all_protocols()#getallscannedprotocols['tcp','udp']in(ip|tcp|udp|sctp)
nm['127.0.0.1']['tcp'].keys()#getallportsfortcpprotocol
nm['127.0.0.1'].all_tcp()#getallportsfortcpprotocol(sortedversion)
nm['127.0.0.1'].all_udp()#getallportsforudpprotocol(sortedversion)
nm['127.0.0.1'].all_ip()#getallportsforipprotocol(sortedversion)
nm['127.0.0.1'].all_sctp()#getallportsforsctpprotocol(sortedversion)
nm['127.0.0.1'].has_tcp(22)#isthereanyinformationforport22/tcponhost127.0.0.1
nm['127.0.0.1']['tcp'][22]#getinfosaboutport22intcponhost127.0.0.1
nm['127.0.0.1'].tcp(22)#getinfosaboutport22intcponhost127.0.0.1
nm['127.0.0.1']['tcp'][22]['state']#getstateofport22/tcponhost127.0.0.1(open

審核編輯 :李倩



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9163

    瀏覽量

    85429
  • 網(wǎng)絡(luò)設(shè)備

    關(guān)注

    0

    文章

    316

    瀏覽量

    29650
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84692
  • 小程序
    +關(guān)注

    關(guān)注

    1

    文章

    235

    瀏覽量

    12136

原文標(biāo)題:網(wǎng)絡(luò)設(shè)備那么多,我用Python定時掃描網(wǎng)絡(luò)中的在線設(shè)備,每天發(fā)送AAA巡檢報告

文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    入門?畢設(shè)?競賽?項目練手?STM32/嵌入式/物聯(lián)網(wǎng)學(xué)習(xí),有這幾款開發(fā)板就夠了!

    學(xué)習(xí)、項目練手、創(chuàng)新競賽、技能認證等。01STM32入門+項目進階學(xué)習(xí)適用場合高校教學(xué)、學(xué)生畢設(shè)、個人學(xué)習(xí)、項目練手、創(chuàng)新競賽、技術(shù)認證可學(xué)習(xí)技術(shù)基于HAL庫的STM
    的頭像 發(fā)表于 10-10 16:31 ?327次閱讀
    入門?畢設(shè)?競賽?項目<b class='flag-5'>練手</b>?STM32/嵌入式/物聯(lián)網(wǎng)學(xué)習(xí),有這幾款開發(fā)板就夠了!

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?1967次閱讀

    Python建模算法與應(yīng)用

    上成為理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。本文將詳細介紹Python在建模算法中的應(yīng)用,包括常見的建模算法、Python在建模中的優(yōu)勢、常用庫以及實際案例。
    的頭像 發(fā)表于 07-24 10:41 ?554次閱讀

    安裝esp-idf-tools-setup-offline-5.1.2.exe到結(jié)尾運行python時顯示應(yīng)用程序無法正常啟動如何解決?

    安裝esp-idf-tools-setup-offline-5.1.2.exe到結(jié)尾運行python時顯示應(yīng)用程序無法正常啟動(0xc000007b),如何解決
    發(fā)表于 07-24 07:50

    Python在AI中的應(yīng)用實例

    Python在人工智能(AI)領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下將詳細探討Python在AI中的幾個關(guān)鍵應(yīng)用實例,包括機器學(xué)習(xí)、深度學(xué)習(xí)、自然語言處理、
    的頭像 發(fā)表于 07-19 17:16 ?1098次閱讀

    如何實現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現(xiàn)文件復(fù)制的特殊方法。下面我們開始學(xué)習(xí)這九種不同的方法來實現(xiàn) Pyt
    的頭像 發(fā)表于 07-18 14:53 ?424次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學(xué)習(xí)軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?1195次閱讀

    python訓(xùn)練出的模型怎么調(diào)用

    Python中,訓(xùn)練出的模型可以通過多種方式進行調(diào)用。 1. 模型保存與加載 在Python中,訓(xùn)練好的模型需要被保存,以便在其他程序或會話中使用。以下是一些常用的模型保存和加載方法。 1.1
    的頭像 發(fā)表于 07-11 10:15 ?1954次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發(fā)環(huán)境
    的頭像 發(fā)表于 07-11 10:11 ?850次閱讀

    python讀取stm32串口讀不了是哪里的問題?

    =ser.readlines()print(s) 可是什么都讀取不了。如果用買的STM32開發(fā)板送的串口助手,能接收到數(shù)據(jù)。板子上燒錄的printf輸出程序。 請問各位大神,Python程序要怎么寫才能讀取串口數(shù)據(jù)呢?跪求大神解
    發(fā)表于 04-24 08:07

    Python怎么讀取STM32串口數(shù)據(jù)?

    =ser.readlines()print(s) 可是什么都讀取不了。如果用買的STM32開發(fā)板送的串口助手,能接收到數(shù)據(jù)。板子上燒錄的printf輸出程序。 請問各位大神,Python程序要怎么寫才能讀取串口數(shù)據(jù)呢?跪求大神解
    發(fā)表于 04-24 07:30

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關(guān)模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發(fā)表于 02-26 09:53 ?1211次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    如何使用linux下gdb來調(diào)試python程序

    如何使用linux下gdb來調(diào)試python程序? 在Linux下,可以使用GDB(GNU調(diào)試器)來調(diào)試Python程序。GDB是一個強大的調(diào)試工具,可以幫助開發(fā)者診斷和修復(fù)
    的頭像 發(fā)表于 01-31 10:41 ?2624次閱讀

    如何使用Python進行圖像識別的自動學(xué)習(xí)自動訓(xùn)練?

    圖像識別的自動學(xué)習(xí)和自動訓(xùn)練。 首先,讓我們了解一下圖像識別的基本概念。圖像識別是指通過計算機程序識別和理解圖像內(nèi)容的過程。自動學(xué)習(xí)和自動訓(xùn)練是指計算機通過觀察和學(xué)習(xí)數(shù)據(jù),自動提取特征并訓(xùn)練模型來實現(xiàn)圖像識別的能力。 在Python中,有許
    的頭像 發(fā)表于 01-12 16:06 ?593次閱讀

    【核桃派1B 開發(fā)板試用體驗】+ Python編程篇

    的結(jié)果。若退出python狀態(tài),需按 Ctrl+D鍵來退出。 圖3 操作內(nèi)容 而在文件的方式下,則需以nano編輯器來創(chuàng)建一個python文件,并輸入對應(yīng)的程序內(nèi)容,見圖4所示。 在文件編輯時,需按
    發(fā)表于 01-03 22:08
    主站蜘蛛池模板: 国产精品亚洲一区二区三区久久 | 果冻传媒在线观看完整版免费| xxx免费观看| 97超碰在线视频 免费| 一区视频免费观看| 亚洲乱码在线卡一卡二卡新区| 十分钟免费视频大全在线观看| 日本2021免费一二三四区| 秋霞网在线伦理免费| 秋霞成人午夜鲁丝一区二区三区| 午夜福利网国产A| 无套内射CHINESEHD熟女| 偷窥自拍性综合图区| 性直播免费| 琪琪电影午夜理论片77网| 午夜神器老司机高清无码| 97视频久久| 成年人深夜福利| 国产成人免费视频| 国产小视频国产精品| 韩国无遮羞禁动漫在线观看| 久久 这里只精品 免费| 久久国产免费一区二区三区| 美美哒高清在线播放8| 澳大利亚剧满足在线观看| 黄色a三级免费看| 久久亚洲精品永久网站| 女警被黑人20厘米强交| 欧美亚洲另类丝袜自拍动漫| 日本污ww视频网站| 乡村教师电影版| jiapanese50欧美熟妇| 调教女M屁股撅虐调教| 国产亚洲人成网站在线观看播放| 久久爱狠狠综合网| 无毒成人社区| 超碰在线视频地址| 男人边吃奶边挵进去呻吟漫画 | 亚洲成AV人电影在线观看 | 91av影院| 久久热最新网站获取3|