3

我需要帮助来构建一个项目。让我先描述一下我的项目 -

我想构建一个 Web 应用程序(使用 php / php 框架(laravel)、html、css、javaScript、bootstrarp),它将帮助 ISP 所有者管理他们的路由器(其中大多数使用 Mikrotik 路由器)。

构建此应用程序的原因:

这里的大多数 ISP 提供商都使用 Mikrotik 路由器来管理他们的互联网业务。但是使用 Winbox(一种基于桌面的 Windows 软件,用于管理 Mikrotik 路由器)管理路由器对他们来说似乎很复杂。只是为了创建新的ip来分配一个新用户,如果他/她不支付账单就阻止一个用户,并管理他们每次发现困难时都需要操作winbox的带宽。我的方法是构建一个 Web 应用程序来简化他们的工作。

我想提供的功能是-

  1. 创建新 IP 地址并将其发送给用户(互联网用户/最终用户)
  2. 管理 IP 地址的带宽
  3. 自动阻止/锁定任何特定 IP 地址(在这种情况下是任何特定用户)在一个月的某个日期没有支付每月账单
  4. 重新启用被阻止的 IP 地址以自动支付他们的会费
  5. 显示每天接收和使用的带宽图表

  6. 记录客户历史(客户 IP 地址、月租、姓名、地址等)

  7. 记录客户的付款历史
  8. 自动账单计算/到期计算
  9. 自动筛选出几个月的到期用户

我能够按照描述执行 6-9 个功能,但我不知道如何实现 1-5 个功能!

我面临的问题:

一种。我不知道如何通过网络应用程序 b 连接到 MikrotiK 路由器。如果我如何使用路由器 IP 地址访问 MikrotiK 路由器,我不知道如何在该路由器数据库上创建新的 IP 地址 c。如何通过 Web 应用程序管理带宽 d. 如何阻止/锁定IP地址!

我自己的观点:

我认为使用管理 vlan(路由器 IP 地址)我可以使用 ssh/telnet 访问该路由器表单命令提示符。之后创建、锁定/阻止、管理 IP 地址带宽的命令是什么?如果所有这些事情都可以使用命令提示符完成,我怎样才能为我的 Web 应用程序制作它?

任何人都可以帮我解决这个问题,引用任何链接吗?我用谷歌搜索,但我唯一找到的是 Mikrotik 路由器管理手册!

4

3 回答 3

2

几周前,我完成了您对客户要求的部分工作。你的问题很广泛,很广泛,完成这项工作需要几个月的时间。

从http://wiki.mikrotik.com/wiki/API_PHP_class中可以找到的基础开始您的项目,然后您可以扩展您的应用程序并在 stackoverflow 或 reddit 等地方发布有关您的问题的具体问题。

按照示例连接到 API,然后执行命令,然后断开连接。

$API = new RouterosAPI();
$API->debug = true; // turn debug on to learn more about your api
if ($API->connect($server , $username , $passwd, $port)) {

    // wireless registration table
    $API->write('/interface/wireless/registration-table/print',false);
    $API->write('=stats=');
    // print output here

} else {

    // connection fails
}
$API->disconnect();

参考:

于 2016-05-05T08:24:35.820 回答
1

您应该使用 API 或远程命令协议,如 ssh/telnet ( PHP-SSH2 )。
这是一个您可以使用的PHP API项目: https
://github.com/BenMenking/routeros-api连接后,您可以像在 mikrotik 控制台上一样提交命令。

Mikrotik 命令维基

于 2016-03-12T11:22:13.173 回答
1

在我看来,你最好在 MySQL 上使用 Radius 服务器和数据库。Mikrotik 与 Radius 完美搭配。在应用程序中实现与数据库的接口以及与 Mikrotik 的所有交互都交给 Radius。例如,阅读有关 FreeRadius 的信息:

https://www.howtoforge.com/authentication-authorization-and-accounting-with-freeradius-and-mysql-backend-and-webbased-management-with-daloradius

于 2016-03-25T09:58:23.160 回答