gpt4 book ai didi

terminal - Mikrotik 自动用户管理器用户脚本需要改进

转载 作者:行者123 更新时间:2023-12-03 12:02:12 38 4
gpt4 key购买 nike

我写了这个脚本,但它不能正常工作。有人可以帮忙吗?

它应该检查用户使用的下载限制和下载,然后执行一些操作,即从事件 ppp 列表中删除用户,但它有一些缺陷,即我无法在变量中获取实际配置文件值,所以我使用用户管理器用户帐户将配置文件名称保存在评论中,这样我就可以在变量中获取配置文件名称,但这不是我想要的方式..所以这就是为什么如何在变量中获取实际配置文件值以及有一个问题..为什么我不能直接更改用户帐户配置文件,而是我做了很长的路,但这样我会丢失用户帐户的统计信息,所以无论如何我都不会丢失用户的统计信息帐户和工作也完成了???

脚本 V1.0:

:foreach i in=[/tool user-manager user find] do={
:global uname [/tool user-manager user get $i username];
:global upass [/tool user-manager user get $i password];
:global dused [/tool user-manager user get $i download-used];
:global uprofile [/tool user-manager user get $i comment];
:global dlimit [/tool user-manager profile limitation get [find name="$uprofile"] download-limit];
:if ($dused > $dlimit) do={
/ppp active remove [find name=$uname]
/tool user-manager user set $i disabled=yes
:log warning "$uname account has been disabled due to downloading limit exceeding";
/tool user-manager user remove $i
:log warning "$uname account is removed on package expiring";
/tool user-manager user add customer=admin disabled=no username=$uname password=$upass;
/tool user-manager user create-and-activate-profile $uname customer=admin profile="Expired User";
:log info "$uname account has been created again with expired profile";
}
}

脚本 V1.0 的工作原理:

它会查找所有下载限制超过配置文件下载限制的用户,因此他们的帐户将被删除并重新创建,并将过期的配置文件分配给他们,这样他们就不会再上网了。
但它有一个问题,即当我删除帐户时,我会丢失用户帐户的统计信息。这就是为什么它不是一个好的解决方案。

脚本 V2.0:
:foreach i in=[/tool user-manager user find] do={
:global uname [/tool user-manager user get $i username];
:global upass [/tool user-manager user get $i password];
:global dused [/tool user-manager user get $i download-used];
:global uprofile [/tool user-manager user get $i comment];
:global dlimit [/tool user-manager profile limitation get [find name="$uprofile"] download-limit];
:if ($dused > $dlimit) do={
:global uip [/tool user-manager user get $i ip-address];
:global hostip [:pick $uip 11 14];
/tool user-manager user set $i ip-address="10.10.10.$hostip"
/ppp active remove [find name=$uname]
:log warning "$uname has been assigned to expired ip pool with ip 10.10.10.$hostip";
}
}

脚本 V2.0 的工作原理:

它查找所有下载限制超过配置文件下载限制的用户并获取其静态 IP,然后将 ip 拆分为网络地址和主机地址,然后将过期的 ip 池网络地址添加到其中,然后添加主机地址到那个过期的 ip 池网络地址,然后每个用户都被分配了 ip,因此他们的工作互联网 ip 池被更改为过期的池,因此统计信息不会在此过程中丢失,而且他们现在不再获得任何互联网..!
所以这是一个更好的解决方案..但我很期待它能做得比这更好..! :D

最佳答案

  • 你为什么要卷入一场野鹅追逐?
  • 为什么要为此功能使用脚本?为什么不直接使用用户管理器分配它?类似讨论 here
    ...只是分享一些想法,也许您可​​以根据您的要求进一步增强它。
  • Mikrotik 用户管理器是一个不错的迷你计费系统,但长期以来它并不是 mikrotik 的重点。它有其缺陷和局限性。
  • 如果您是 ISP/Net_Operator 之类的商业实体,那么我建议您使用一些专用的计费系统,例如 自由半径或可以很好地完成工作的半径管理器。
  • 它还可以执行许多其他花哨的功能,例如发送短信/重定向/等等...
  • 关于terminal - Mikrotik 自动用户管理器用户脚本需要改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42314535/

    38 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com