一、简介

本文将使用python模块中的junos-eznc来控制juniper的 Junos OS系统,此模块可以在windows平台和UNIX平台上使用

二、实验环境

  1.操作系统:win10

  2.python版本: python3.6.6

  3.junos-eznc模块版本:2.2.0

  4.Juniper设备型号:SRX550M

  5.Juniper软件版本:Junos 15.1X49-D30.3

三、安装junos-eznc模块

pip install junos-eznc

四、简单实例

from pprint import pprint
from jnpr.junos import Device host = 'xx.xx.xx.xx' #JuniperIP地址
user = 'xxx' #用户名
password = 'xxx' #密码
with Device(host=host,user=user,password=password) as dev:
pprint(dev.facts) #pprint是可以格式化打印,打印内容为设备信息

  部分截图

五、常见方法介绍

  1. dev = Device(host,user,password,mode,port,console_has_banner=True)   连接对象

host     #Juniper远程主机地址
user #用户名
password #密码
mode #模式,默认是netconf协议,也可使用telnet,serial
port #端口,默认是22,此处用数字或者字符串都行

   Device里的方法:

  1.1 dev.open()

  1.2 dev.facts  设备信息

  1.3 dev.cli('command')

    模拟在cli执行命令,返回结果,如dev.cli('show interfaces terse ge-0/0/1.0 ') ,查看ge-0/0/1.0接口简洁信息,只支持一个管道符|,如dev.cli(" show configuration | display set | grep route"),显示的结果跟show configuration | display set一样

六、常见问题

  1.出现jnpr.junos.exception.ConnectTimeoutError

    可能原因:
1>接口未放行netconf流量
set security zones security-zone XXXX interfaces ge-0/0/0.0 host-inbound-traffic system-services netconf 2>端口(默认22),ip,用户名或者密码错误

  2.出现jnpr.junos.exception.ConnectRefusedError

    可能原因:
1>未开启netconf端口服务
set system services netconf ssh #开启netconf协议,允许netconf承载在ssh上

七、案例解析

  7.1  查看路由表

from jnpr.junos import Device
from jnpr.junos.op.routes import RouteTable
from getpass import getpass
from pprint import pprint hostIp = input('HostIp:')
user = input('UserName:')
passwd = input('Password:') #getpass在pycharm中无法使用,故使用input
dev = Device(hostIp,user=user,password=passwd)
dev.open()
routes = RouteTable(dev)
routes.get() #得到总的路由条目
routes.get('192.168.1.0/24') #填写网段或者ip/掩码都可以,返回的是被包含在该网段的条目数,即/24可以包含/25,/26...之类的
routes.get('192.168.1.0/24',protocol='direct') #获得符合被包含在网段192.168.1.0/24,协议是直连的条目数,一般协议为static,direct,local...
pprint(routes.keys()) #格式化打印出匹配到的路由名称,返回的是列表的形式
dev.close()

八、参考文献

1.https://www.juniper.net/documentation/en_US/junos-pyez/topics/task/installation/junos-pyez-server-installing.html

python模块之junos-eznc的更多相关文章

  1. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  2. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  3. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

  4. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  5. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

  6. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  7. Python基础篇【第5篇】: Python模块基础(一)

    模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...

  8. python 模块加载

    python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...

  9. pycharm安装python模块

    这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK

随机推荐

  1. JavaScript控制语句结构、函数部分

    HTML页面代码: <html> <head> <meta charset="UTF-8"> <title>HelloWorld&l ...

  2. 一次使用InfluxDB数据库的总结

    前言 因当前的项目需要记录每秒钟服务器的状态信息,例如负载.cpu等等信息,这些数据都是和时间相关联的. 因为一秒钟就要存储挺多的数据.而且我还在前端做了echart的折线图,使用websocket实 ...

  3. github访问不到,登陆不上

    为github添加host C:\WINDOWS\System32\drivers\etc 在host文件添加如下两行 192.30.253.112 github.com 151.101.113.19 ...

  4. 「数据分析」Sqlserver中的窗口函数的精彩应用之数据差距与数据岛(含答案)

    上一篇介绍过数据差距与数据岛的背景,这里不再赘述,请翻阅上一文.此篇在Sqlserver上给大家演示1000万条记录的计算性能. 测试电脑软硬件说明 一般般的笔记本电脑,2017年7月,价格:4500 ...

  5. jenkins +Jmeter 完成分布式性能测试

    1.Jmeter 压测机器配置. 下载Jmeter 版本:https://jmeter.apache.org/download_jmeter.cgi   我下的是5.1.1 将下载后的版本进行解压. ...

  6. Android/AndroidStudio/idea使用教程之git使用(详细)(码云)

    已经安装好了AndroidStudio,安装教程 本教程是作者自己摸索出来的,有不足之处还请大家海涵.多多拍砖,互相学习. 第一步:下载git,安装git客户端 直接百度git,下载git ​ 安装g ...

  7. [PTA] L3-015 球队“食物链”

    原题链接 思路: 如果有环,则起点一定为"1".如果没有可以胜过"1"的,则无环. 根据W,L来建立图,用dfs从1节点遍历+回溯. 剪枝:dfs到某个子序列时 ...

  8. sql LocalDB 的安装环境和使用方法

    LocalDB LocalDB专门为开发商.它是非常容易安装,无需管理,但它提供了相同的T-SQL语言,编程表面和客户端供应商定期的SQL Server Express.实际上,目标SQL Serve ...

  9. python调用WebService遇到的问题'Document' object has no attribute 'set'

    代码: from suds import WebFault from suds.client import Client url = 'http://******/bns/PtDataSvc.asmx ...

  10. 盘一盘 synchronized (二)—— 偏向锁批量重偏向与批量撤销

    在本文讲解之前,先来简单了解一下为什么会有批量重偏向和批量撤销.   批量重偏向:当一个线程创建了大量对象并执行了初始的同步操作,后来另一个线程也来将这些对象作为锁对象进行操作,会导偏向锁重偏向的操作 ...