Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/job/check_clinet_ip_job.go59
1 files changed, 29 insertions, 30 deletions
diff --git a/web/job/check_clinet_ip_job.go b/web/job/check_clinet_ip_job.go
index bf71116b..9e1959e3 100644
--- a/web/job/check_clinet_ip_job.go
+++ b/web/job/check_clinet_ip_job.go
@@ -247,47 +247,46 @@ func GetInboundByEmail(clientEmail string) (*model.Inbound, error) {
return inbounds, nil
}
-func LimitDevice(){
-
- localIp,err := LocalIP()
- checkError(err)
+func LimitDevice() {
+ var destIp, destPort, srcIp, srcPort string
+
+ localIp,err := LocalIP()
+ checkError(err)
- c := cmd.NewCmd("bash","-c","ss --tcp | grep -E '" + IPsToRegex(localIp) + "'| awk '{if($1==\"ESTAB\") print $4,$5;}'","| sort | uniq -c | sort -nr | head")
+ c := cmd.NewCmd("bash","-c","ss --tcp | grep -E '" + IPsToRegex(localIp) + "'| awk '{if($1==\"ESTAB\") print $4,$5;}'","| sort | uniq -c | sort -nr | head")
- <-c.Start()
- if len(c.Status().Stdout) > 0 {
- ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`)
- portRegx, _ := regexp.Compile(`(?:(:))([0-9]..[^.][0-9]+)`)
+ <-c.Start()
+ if len(c.Status().Stdout) > 0 {
+ ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`)
+ portRegx, _ := regexp.Compile(`(?:(:))([0-9]..[^.][0-9]+)`)
- for _, row := range c.Status().Stdout {
-
- data := strings.Split(row," ")
-
- destIp,destPort,srcIp,srcPort := "","","",""
-
+ for _, row := range c.Status().Stdout {
- destIp = string(ipRegx.FindString(data[0]))
+ data := strings.Split(row," ")
- destPort = portRegx.FindString(data[0])
- destPort = strings.Replace(destPort,":","",-1)
-
-
- srcIp = string(ipRegx.FindString(data[1]))
+ if len(data) < 2 {
+ continue // Skip this row if it doesn't have at least two elements
+ }
- srcPort = portRegx.FindString(data[1])
- srcPort = strings.Replace(srcPort,":","",-1)
+ destIp = string(ipRegx.FindString(data[0]))
+ destPort = portRegx.FindString(data[0])
+ destPort = strings.Replace(destPort,":","",-1)
- if(contains(disAllowedIps,srcIp)){
- dropCmd := cmd.NewCmd("bash","-c","ss -K dport = " + srcPort)
- dropCmd.Start()
+ srcIp = string(ipRegx.FindString(data[1]))
+ srcPort = portRegx.FindString(data[1])
+ srcPort = strings.Replace(srcPort,":","",-1)
- logger.Debug("request droped : ",srcIp,srcPort,"to",destIp,destPort)
- }
- }
- }
+ if contains(disAllowedIps,srcIp){
+ dropCmd := cmd.NewCmd("bash","-c","ss -K dport = " + srcPort)
+ dropCmd.Start()
+ logger.Debug("request droped : ",srcIp,srcPort,"to",destIp,destPort)
+ }
+ }
+ }
}
+
func LocalIP() ([]string, error) {
// get machine ips