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
随机推荐
- [记录]优化Linux 的内核参数来提高服务器并发处理能力
优化Linux 的内核参数来提高服务器并发处理能力PS:在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题.要提高Linux 系统下的负载 ...
- Excel催化剂开源第13波-VSTO开发之DataGridView控件几个小坑
Excel催化剂内部大量使用了DataGridView,这其中有一些小坑,花了力气才解决的,在此给广大开发者作简单分享. 为何要使用DataGridView而不是其他控件如ListBox.ListVi ...
- 我狠起来连自己都打---如何简单实现Azure resource自动打标签
你是否还在为花费大量Azure Resource打标签而烦恼呢?你是否还在因为这样低效的重复劳动而痛苦呢? 在很长一段时间内,笔者既要做云架构调整,又要做日常系统维护,还要参与各种各样的项目,在这种情 ...
- Java编程基础阶段笔记 day01 Java语言概述
目录内容 DOS命令 电脑配置 Java语言的特性 Java两种核心机制 Java语言环境搭建 第一个Java程序 注释 Java语句说明 编程风格 作业 常用的DOS命令 dir : 列出当 ...
- java练习---3
//程序员:罗元昊 2017.9.6public class World{ public static void main(String[] args){ double p=3.14,i=5.50; ...
- 程序员的长安十二时辰:Java实现从Google oauth2.0认证调用谷歌内部api
最近公司在做一个app购买的功能,主要思路就是客户在app上购买套餐以后,Google自动推送消息到Java后端,然后Java后端通过订单的token获取订单信息,保存到数据库. Java后端要获取订 ...
- Atlassian In Action-Jira之二次开发(五)
到现在已经写到了第五章节,实际上离Jira的官方系统已经越来越远,本章节的内容基本上已经完全脱离了Jira这个系统本身,而是依赖Jira的API接口和数据库进行开发了.主要包含如下几个功能: 人员任务 ...
- PHP与ECMAScript_4_常用数学相关函数
PHP ECMAScript 向上取整 ceil($number) Math.ceil( number ) 向下取整 floor($number) Math.floor( number ) 绝对值 a ...
- 【Android】drawable VS mipmap
Android Studio 创建工程后默认的资源文件夹如下图所示: 一直有些疑惑的是 mipmap 和 drawable 文件夹有什么区别,以及是否还需要创建 drawable-xhdpi, dra ...
- 【iOS】ARC & MRC
iOS 项目类型,是 ARC 还是 MRC 未完……