mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-07-01 04:22:08 +00:00
"index out of range" fixed
This commit is contained in:
parent
f0f5163a83
commit
f56dd43999
1 changed files with 29 additions and 30 deletions
|
@ -247,47 +247,46 @@ func GetInboundByEmail(clientEmail string) (*model.Inbound, error) {
|
||||||
return inbounds, nil
|
return inbounds, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func LimitDevice(){
|
func LimitDevice() {
|
||||||
|
var destIp, destPort, srcIp, srcPort string
|
||||||
localIp,err := LocalIP()
|
|
||||||
checkError(err)
|
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()
|
<-c.Start()
|
||||||
if len(c.Status().Stdout) > 0 {
|
if len(c.Status().Stdout) > 0 {
|
||||||
ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`)
|
ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`)
|
||||||
portRegx, _ := regexp.Compile(`(?:(:))([0-9]..[^.][0-9]+)`)
|
portRegx, _ := regexp.Compile(`(?:(:))([0-9]..[^.][0-9]+)`)
|
||||||
|
|
||||||
for _, row := range c.Status().Stdout {
|
for _, row := range c.Status().Stdout {
|
||||||
|
|
||||||
data := strings.Split(row," ")
|
|
||||||
|
|
||||||
destIp,destPort,srcIp,srcPort := "","","",""
|
|
||||||
|
|
||||||
|
|
||||||
destIp = string(ipRegx.FindString(data[0]))
|
data := strings.Split(row," ")
|
||||||
|
|
||||||
destPort = portRegx.FindString(data[0])
|
if len(data) < 2 {
|
||||||
destPort = strings.Replace(destPort,":","",-1)
|
continue // Skip this row if it doesn't have at least two elements
|
||||||
|
}
|
||||||
|
|
||||||
srcIp = string(ipRegx.FindString(data[1]))
|
|
||||||
|
|
||||||
srcPort = portRegx.FindString(data[1])
|
destIp = string(ipRegx.FindString(data[0]))
|
||||||
srcPort = strings.Replace(srcPort,":","",-1)
|
destPort = portRegx.FindString(data[0])
|
||||||
|
destPort = strings.Replace(destPort,":","",-1)
|
||||||
|
|
||||||
if(contains(disAllowedIps,srcIp)){
|
srcIp = string(ipRegx.FindString(data[1]))
|
||||||
dropCmd := cmd.NewCmd("bash","-c","ss -K dport = " + srcPort)
|
srcPort = portRegx.FindString(data[1])
|
||||||
dropCmd.Start()
|
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) {
|
func LocalIP() ([]string, error) {
|
||||||
// get machine ips
|
// get machine ips
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue