java基于winbox 工具下使用 api获取映射表api数据
Winbox 是基于 windows下远程管理 ROS的软件,提供直观方便的图形界面。用它能登陆路由器,这个路由器是软路由ROUTEOS制作的,用Winbox登陆后,就可以配置路由器了,用这个软件便于配置路由器。Winbox控制台使用TCP8291端口,在登陆到路由器后可以通过Winbox控制台操作MikroTik路由器的配置并执行与本地控制台同样的任务。
基于ros 路由的配置,我们可以对ip进行数据解析分析服务,对ros产生的ip详细dns日志收录,对流量记录等。
使用winbox:左边是工具的使用,我们可以用
链接:https://pan.baidu.com/s/1kgJ_RougILQzIQUGj-ljdA
提取码:bqlx
Manual:API - MikroTik Wiki ROS 是 一个比较流行的软路由系统,它的强大在于它的高度定制性,它提供了应用程序编程使用的API接口,是它应用更加灵活,我们可以自己开发软件或WEB程序来操控ROS,比较实用的例子就是当用ROS管理小区网络时,我们用自己写的软件来管理上网账号,安全又方便。下面是官网,已经简单命令的使用。
Manual:API - MikroTik Wiki
(这里的api是需要通过命令输入查询才行)
这里我们通过命令可以去跑数据,那如何把这个数据通过api读取到我们程序来呢?
git地址
https://github.com/GideonLeGrange/mikrotik-java
可以吧代码拉到本地看看源码。
如何集成到springboot程序里面?我们只需要一个maven包就行了。
<dependency><groupId>me.legrange</groupId><artifactId>mikrotik</artifactId><version>3.0.7</version>
</dependency>
与Ros通信至少需要哪些参数?
host: {}, port: {}, rosUserName: {}, rosPassword: {},Socket:{}
获取连接:
/*** 获取rosconnect 连接** @return*/public static ApiConnection getRosConnection() {try {//建立连接超时时间限制ApiConnection con = ApiConnection.connect(SocketFactory.getDefault(), host, ApiConnection.DEFAULT_PORT, 30000);//命令执行超时时间限制con.setTimeout(500000);con.login(rosUserName, rosPassword);return con;} catch (Exception e) {e.printStackTrace();}return null;}
执行命令:
public static List<Map<String, String>> execute(ApiConnection conn, String command) {try {return conn.execute(command);} catch (MikrotikApiException e) {e.printStackTrace();}return null;}
测试数据已经可以拿到了:
工具类。需要测试换成你自己的地址。
package com.nanianxiatian.springboot.util;import me.legrange.mikrotik.ApiConnection;
import me.legrange.mikrotik.ApiConnectionException;
import me.legrange.mikrotik.MikrotikApiException;import javax.net.SocketFactory;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;/*** <p>* ros data** @author yangchang* @since 2022-03-06*/
public class RosUtils {/*** host*/private static String host = "116.6.2.251";private static int port = 8291;private static String rosUserName = "admin";private static String rosPassword = "admin";/*** 获取rosconnect 连接** @return*/public static ApiConnection getRosConnection() {try {//建立连接超时时间限制ApiConnection con = ApiConnection.connect(SocketFactory.getDefault(), host, ApiConnection.DEFAULT_PORT, 30000);//命令执行超时时间限制con.setTimeout(500000);con.login(rosUserName, rosPassword);return con;} catch (Exception e) {e.printStackTrace();}return null;}public static List<Map<String, String>> execute(ApiConnection conn, String command) {try {return conn.execute(command);} catch (MikrotikApiException e) {e.printStackTrace();}return null;}public static void logout(ApiConnection conn) {try {if (conn != null) {conn.close();}} catch (ApiConnectionException e) {// log.error("", e);}}public static void main(String args[]) {//执行命令ros脚本命令String command = "/ip/firewall/address-list/print";ApiConnection connection = getRosConnection();List<Map<String, String>> existsList = execute(connection, String.format(command));List<String> list = existsList.stream().map(m -> m.get("address")).collect(Collectors.toList());logout(connection);System.out.println("其他");}}
拿到数据就可以愉快的操作了。
喜欢记得一键三连。
java基于winbox 工具下使用 api获取映射表api数据相关推荐
- java基于HuTool工具类ExcelWriter合并单元格
** java基于HuTool工具类ExcelWriter合并单元格 ** 1.基于HuTool工具类ExcelWriter合并单元格并且使用 jdk1.8 lambda表达式 效果如下: 用姓名和编 ...
- 基于vue框架下使用Element-UI获取文件MD5值并上传
基于vue框架下使用Element-UI获取文件MD5值并上传 使用插件: spark-md5 .vue页面 <el-uploadclass="avatar-uploader idca ...
- java导出Excel增加下拉框选项,解决小数据量和大数据量下拉框选项的问题
文章目录 java导出Excel增加下拉框选项 一.小数据量情况 二.大数据量情况 java导出Excel增加下拉框选项(java结合easyExcel) 添加传参模型ConsumablesAddDT ...
- 使用Youtube官方API获取频道及视频数据
2020-06-04更新 下面附上笔者提供的源码(已经验证过功能.后续会在同一个工程中更新Facebook和Insgram的相关爬虫代码). https://github.com/zhangjz777 ...
- java使用htmlunit工具抓取js中加载的数据
htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容.项目可以模拟浏览器运行,被誉为java浏览器的开源实现.这个没有界面的浏览器,运行速度 ...
- 通过http请求 zabbix api 获取监控的流量数据
zabbix获取流量监控数据(之前有问题,修正了下) zabbix没有提供监控流量数据的api(至少我没有找到),历史表有一部分数据,但是不全,所以只能从趋势数据表里获取.流量数据是隔段时间保存一次的 ...
- 基于JQuery Ajax实现三级联动获取SpringMVC接口的数据(详细一套)
本文实例为大家分享了ajax实现三级联动的具体代码,供大家参考(复制下来就可以用) 一.省市县数据表可见:全国各.省.市区/县sql语句 二.点我:切换二级联动 在静态页面写调用服务端接口,获取省.市 ...
- Msray-Plus采集工具帮您轻松获取目标受众的数据,让您的市场营销更加便捷
市场营销是企业推广产品和服务的重要手段之一,是企业获取客户和提高销售业绩的关键环节.然而,传统的市场营销方式存在着很多弊端,如缺乏数据支持.信息不准确.效率低下等问题,这些问题直接影响了企业的市场营销 ...
- 使用FFMpeg API 获取摄像头的图像数据
文章目录 1. 获取摄像头的信息 2. 打开并初始化摄像头 3. 获取摄像头数据及渲染 摄像头是我们比较常用的外设,很多场景我们都会用到摄像头.比如视频直播.视频监控等各个领域都会用到摄像头.摄像头图 ...
最新文章
- 裸奔浏览器_大概是最好用的隐私浏览器 - Firefox Focus
- 字符数据类型转换代码
- nio和bio的原理_Java的BIO,NIO和AIO的区别于演进
- 开源软件的安全性风险_开源安全性,Google惊喜等
- 22号大更新网站大面积降权的原因分析
- Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)
- xcode-select --install选择安装安装失败:下载失败网络问题(2:散列问题解决方案)
- PS1545L-ASEMI低压降肖特基二极管PS1545L
- 【虚拟机里测试Windows PE的方法】
- 1024程序员节!Hello world
- Android调用系统相机拍照
- SOUI总结之比较常用的类
- 百度云主机连接FTP
- 刘润《商业简史》读书笔记--拾间房
- Easyui Datagrid 中用 Combotree 的显示问题
- python pandas包,Python的常用包pandas,numpy
- python面向对象:光学元件类的实现
- 一些常用软件静默安装参数(nsis,msi,InstallShield ,Inno)
- 什么是8口poe交换机?8口poe交换机有哪些特点?
- 第五章 C++与STL入门 例题