python模块之junos-eznc
一、简介
本文将使用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的更多相关文章
- 使用C/C++写Python模块
最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- python 模块加载
python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...
- pycharm安装python模块
这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK
随机推荐
- bash 遍历目录
bash遍历目录脚本traverse.sh: #!/bin/bash datadir=$ declare -a dirlist dirlist=`>/dev/null` for i in ${d ...
- 【基础算法-模拟-例题-玩具谜题】-C++
原题链接P1563 玩具谜题 这道题依然是一道模拟题目,就简单讲讲坑点: 1.有些时候在转圈的时候要用到它们站成了一个环的性质! 2.小人面朝的方向影响了它们左右的方向! 3.注意考虑顺时针逆时针与小 ...
- 作为前端程序员的她凭什么成为Judy团队第一位助教?
Judy团队第一位助教-俊英子:正直,阳光,向上,自律,优秀的女孩,当然这些词语还是无法描述出她的优秀 英子,我们第一次的时候,2月25号,下午16:26分,她突然发了一段长的文字我. 她说她一直在读 ...
- 洛谷P4994 终于结束的起点 题解
求赞,求回复,求关注~ 题目:https://www.luogu.org/problemnew/show/P4994 这道题和斐波那契数列的本质没有什么区别... 分析: 这道题应该就是一个斐波那契数 ...
- 分布式Streaming Data Processing - Samza
现在的主流的互联网应用越来越依赖streaming data来提供用户一些interesting statistics insights.以linkedin为例,最近90天有多少人看过你的link ...
- David与Vincent的博弈游戏[树型DP]
\(\mathcal{Description}\) \(\mathcal{Solution}\) 根据题意,我们知道 根节点深度为1,深度为 奇数 的节点由\(David\)移动,我们称为\(D\)点 ...
- RabbitMQ延迟消息的延迟极限是多少?
之前在写Spring Cloud Stream专题内容的时候,特地介绍了一下如何使用RabbitMQ的延迟消息来实现定时任务.最近正好因为开发碰到了使用过程中发现,延迟消息没有效果,消息直接就被消费了 ...
- spark 源码分析之十九 -- Stage的提交
引言 上篇 spark 源码分析之十九 -- DAG的生成和Stage的划分 中,主要介绍了下图中的前两个阶段DAG的构建和Stage的划分. 本篇文章主要剖析,Stage是如何提交的. rdd的依赖 ...
- Unity3D热更新之LuaFramework篇[08]--热更新原理及热更服务器搭建
前言 前面铺垫了这么久,终于要开始写热更新了. Unity游戏热更新包含两个方面,一个是资源的更新,一个是脚本的更新. 资源更新是Unity本来就支持的,在各大平台也都能用.而脚本的热更新在iOS平台 ...
- java抽奖思路
现在在做一个有关抽奖的活动,将我自己所做的抽奖思路书写一下 1.项目奖项的配置存储在MongoDB 配置的参数为 奖项的等级(prizeLevel).数量(prizeNum).奖项的名称(prizeN ...