/
OnConnect
executable file
·45 lines (30 loc) · 1.14 KB
/
OnConnect
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh
LAN_IF="INTERNAL_INTERFACE"
WAN_IF="EXTERNAL_INTERFACE"
LOGIN=$1
IP=$2
CASH=$3
ID=$4
SPEED=`/etc/stargazer/GetSpeed $LOGIN`
UPSPEED=`/etc/stargazer/GetUpSpeed $LOGIN`
MAC=`/etc/stargazer/GetMac $LOGIN`
SCOUNT="kbit"
ipt="/usr/sbin/iptables"
ips="/usr/sbin/ipset"
tc="/usr/sbin/tc"
arpcmd="/usr/sbin/arp"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`
${arpcmd} -s ${IP} ${MAC}
DMARK=`expr $ID + 2`
UMARK=`expr $ID + 5001`
${ipt} -t mangle -A FORWARD -d ${IP} -j MARK --set-mark ${DMARK}
${ipt} -t mangle -A FORWARD -s ${IP} -j MARK --set-mark ${UMARK}
${tc} class add dev ${LAN_IF} parent 1:1 classid 1:${DMARK} htb rate ${SPEED}${SCOUNT}
${tc} filter add dev ${LAN_IF} parent 1: protocol ip prio 1 handle ${DMARK} fw classid 1:${DMARK}
${tc} class add dev ${WAN_IF} parent 1:1 classid 1:${UMARK} htb rate ${UPSPEED}${SCOUNT}
${tc} filter add dev ${WAN_IF} parent 1: protocol ip prio 1 handle ${UMARK} fw classid 1:${UMARK}
${ips} -D DISCON ${IP}
${ips} -A FORW ${IP}
# ADD TO LOG
echo "$cur_date $cur_time CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH;SPEED-$SPEED;UPSPEED-$UPSPEED,MAC-$MAC" >> /var/stargazer/allconnect.log