update 2026-05-27 23:25:57

This commit is contained in:
action committed 2026-05-27 23:25:57 +08:00
1 parent 84f707b52b
commit d0159b49a5
759 files changed
+362365

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-banmac-ipt
PKG_VERSION:=20211118
include $(INCLUDE_DIR)/package.mk
define Package/luci-app-banmac-ipt
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=3. Applications
TITLE:=LuCI Support for Ban Client
PKGARCH:=all
endef
define Build/Compile
endef
define Package/luci-app-banmac-ipt/install
$(INSTALL_DIR) $(1)/usr/lib/lua/luci
cp -pR ./luasrc/* $(1)/usr/lib/lua/luci
$(INSTALL_DIR) $(1)/usr/banmac
$(INSTALL_BIN) ./files/banmac/* $(1)/usr/banmac
$(INSTALL_DIR) $(1)/etc
$(INSTALL_CONF) ./files/banmaclog $(1)/etc/banmaclog
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/banmac.conf $(1)/etc/config/banmac
endef
$(eval $(call BuildPackage,luci-app-banmac-ipt))
+5
View File
@@ -0,0 +1,5 @@
config banlist
config banmac 'smartphone'
+18
View File
@@ -0,0 +1,18 @@
#!/bin/sh
sectionname=$(echo $0 | cut -d '_' -f 2 | sed 's/^OO!%!OO//')
getcmac=$(uci get banmac.$sectionname.banlist_mac | tr 'A-Z' 'a-z')
iptables -I FORWARD -m mac --mac-source $getcmac -j DROP
hostname=$(grep -n $getcmac /tmp/dhcp.leases | cut -d ' ' -f 4)
hostip=$(grep -n $getcmac /tmp/dhcp.leases | cut -d ' ' -f 3)
echo "★禁网设备:$hostname($hostip) MAC地址:$getcmac 操作日期:$(date +%Y年%m月%d日\ %H点%M分%S秒)" >> /etc/banmaclog
for i in $(seq 0 1)
do
for x in $(iw wlan${i} station dump | grep -i station | cut -d ' ' -f 2)
do
if [ $x = $getcmac ]; then
iw dev wlan${i} station del $x
fi
done
done
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
sectionname=$(echo $0 | cut -d '_' -f 2 | sed 's/^OO!%!OO//')
getcmac=$(uci get banmac.$sectionname.banlist_mac | tr 'A-Z' 'a-z')
iptables -D FORWARD -m mac --mac-source $getcmac -j DROP
sed -i "s/$(cat /etc/banmaclog | grep $getcmac | head -n 1)//;/^\s*$/d" /etc/banmaclog
+3
View File
@@ -0,0 +1,3 @@
#点击 One-Click Ban 快速禁止指定客户端。点击 One-Click UnBan 快速解禁。
#这里记录了客户端列表
----------------------------------------------------------------------
@@ -0,0 +1,7 @@
module("luci.controller.banmac",package.seeall)
function index()
local page = entry({"admin", "services", "banmac"}, cbi("banmac"), _("BanMac"),5)
page.dependent = true
end
@@ -0,0 +1,47 @@
m = Map("banmac", translate("BanMac"))
local banlist = m:section(TypedSection, "banlist", translate("log"))
banlist.anonymous = true
local bmdetails = "/etc/banmaclog"
local BMNXFS = require "nixio.fs"
bmd = banlist:option(TextValue, "details")
bmd.rows = 6
bmd.wrap = "off"
bmd.cfgvalue = function(self, section)
return BMNXFS.readfile(bmdetails) or ""
end
bmd.write = function(self, section, value)
BMNXFS.writefile(bmdetails, value:gsub("\r\n", "\n"))
end
s = m:section(TypedSection, "banmac", "")
s.anonymous = false
s.addremove = true
s:tab("banmactab", translate("BanMac Menu"))
banlist_mac = s:taboption("banmactab", Value, "banlist_mac", translate("MAC address"))
banlist_mac.rmempty = true
banlist_mac.datatype = "macaddr"
luci.sys.net.mac_hints(function(mac, name)
banlist_mac:value(mac, "%s (%s)" %{ mac, name })
end)
ban_mac = s:taboption("banmactab", Button, "ban_mac", translate("One-Click BAN"))
ban_mac.rmempty = false
ban_mac.inputstyle = "apply"
function ban_mac.write(self, section)
luci.util.exec("cp /usr/banmac/ban.sh /tmp/ban_OO!%!OO" ..section.. "_.sh >/dev/null 2>&1 &")
luci.util.exec("/tmp/ban_OO!%!OO" ..section.. "_.sh >/dev/null 2>&1 &")
end
unban_mac = s:taboption("banmactab", Button, "unban_mac", translate("One-Click UnBAN"))
unban_mac.rmempty = false
unban_mac.inputstyle = "apply"
function unban_mac.write(self, section)
luci.util.exec("cp /usr/banmac/unban.sh /tmp/unban_OO!%!OO" ..section.. "_.sh >/dev/null 2>&1 &")
luci.util.exec("/tmp/unban_OO!%!OO" ..section.. "_.sh >/dev/null 2>&1 &")
end
return m