hualinux ros 1.25:RouterOS py api(四): python通过ros aip执行命令

目录

一、执行环境

二、使用PyCharm创建ros项目

2.1 创建新项目

2.2 添加routeros模块

2.3 创建一个ros连接

2.3.1 routeros使用说明

2.3.2 创建一个例子

2.3.3 从结果取需要的值

三、预习ros api用法



前章介绍了PyCharm的安装,本章将讲如何使用PyCharm调用ros api接口执行ros命令

一、执行环境

引实验使用的软件及版本号如下表所示:

软件名版本安装方式说明
python3.8 exewin 64位上安装
PyCharm2020.2exe目前最新稳定版
routeros模块0.1.1pip一个python模块,可以直接使用PyCharm添加
ros6.47.8虚拟机运行ros vm虚拟机即可

二、使用PyCharm创建ros项目

2.1 创建新项目

按《python 开发工具PyCharm安装》的"建立一个简单的python项目"方式创建一个新项目,我这里名为ros-csdn吧

PS:如果项目打开过的话,可以先关闭,操作如下 "File-->Close Project"

2.2 添加routeros模块

要实现python连接ros api 可以按ros api官方的要求实现序列化,但是太麻烦不适合初学者,python有现成的routeros模块直接使用即可。routeros模块目前版本为0.1.1,文档是也介绍了它的安装方式,我这里直接使用PyCharm安装了。操作如下:

PS:其实PyCharm安装也相当于在PyCharm终端中执行 “pip install routeros ”

安装完之后,发现多了一个routeros,表示安装完成了

ps:以后安装模块都可以使用此方式,为了美化打印,我们一般也打prettyprinter安装上去。

2.3 创建一个ros连接

2.3.1 routeros使用说明

按照python的routeros模块使用说明

知道使用它的步骤是

  1. 导入routeros模块
  2. 使用login方法创建routeros对象:对象名=login(<'用户名'>,<'密码>',<'ip'>,[端口号]),如果不写端口号则使用默认
  3. 执行ros命令:对象名('ros命令'),这里的 ros命令可以用单引号也可以双单号,有三引号,如果含有python变量使用双引号

2.3.2 创建一个例子

我们就按上面的例子创建一个试下,

输入下面代码

from routeros import login

# 我用winbox打开 api端口号改为9000了,默认是8728
ros = login('hua', '123', '192.168.2.6')

# 执行ros命令,与ros命令行不同的是,要把命令间的空格改为"/"即可
# 比如 /ip pool print 则改为“/ip/pool/print”即可
result = ros('/ip/pool/print')

#打印结果
print(result)

ps:值得注意的是 ros api使用的密码不要用特殊字符,否则会报 “routeros.exc.FatalError: not logged in” ,没有登录进去

写完后运行一下python,如下

下面是执行结果,如下:

在最上面菜单中会生成一个以这个python命令的配置这里是“ipPool”,以后就点旁边的绿色小三角运行即可,如下图所示:

2.3.3 从结果取需要的值

从上面的结果

({'.id': '*2', 'name': 'pppoe1', 'ranges': '10.10.1.10-10.10.1.250'},)

得知是元组,嵌套字典组成,如果要获取ip地址池和ip范围,可以使用如下python代码

from routeros import login

# 我用winbox打开 api端口号改为9000了,默认是8728
ros = login('hua', '123', '192.168.2.6')

# 执行ros命令,与ros命令行不同的是,要把命令间的空格改为"/"即可
# 比如 /ip pool print 则改为“/ip/pool/print”即可
result = ros('/ip/pool/print')
# print(result)
print("ip地址名:", result[0]['name'])
print("IP地址为:", result[0]['ranges'])

 上面的 result[0]['name']意思是取元素第1个元素,但元素是一个字典,取字典的值可以直接使用 ['key'] 这种方式

三、预习ros api用法

我以后将花几章来讲解ros api的用法 ,可以先看一下ros api官方文档

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值