mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-11-03 04:23:56 +08:00
update 2026-05-27 23:25:57
This commit is contained in:
1 parent
84f707b52b
commit
d0159b49a5
759 files changed
+362365
No files matched your search
@@ -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))
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
config banlist
|
||||
|
||||
config banmac 'smartphone'
|
||||
|
||||
Executable
+18
@@ -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
|
||||
Executable
+7
@@ -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
|
||||
@@ -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
|
||||
Reference in new issue
Block a user