adjust external ip

This commit is contained in:
刘河 2019-12-02 02:15:13 +08:00
parent 927038fd4c
commit 91c1ffc6ce
2 changed files with 19 additions and 4 deletions

View File

@ -396,3 +396,14 @@ func GetExtFromPath(path string) string {
} }
return string(re.Find([]byte(s[0]))) return string(re.Find([]byte(s[0])))
} }
func GetExternalIp() string {
resp, err := http.Get("http://myexternalip.com/raw")
if err != nil {
return ""
}
defer resp.Body.Close()
content, _ := ioutil.ReadAll(resp.Body)
return string(content)
}

View File

@ -174,7 +174,12 @@ func (s *Sock5ModeServer) sendUdpReply(writeConn net.Conn, c net.Conn, rep uint8
} }
var serveExternalIp string
func (s *Sock5ModeServer) handleUDP(c net.Conn) { func (s *Sock5ModeServer) handleUDP(c net.Conn) {
if serveExternalIp == "" {
serveExternalIp = common.GetExternalIp()
}
defer c.Close() defer c.Close()
addrType := make([]byte, 1) addrType := make([]byte, 1)
c.Read(addrType) c.Read(addrType)
@ -213,9 +218,8 @@ func (s *Sock5ModeServer) handleUDP(c net.Conn) {
logs.Error("listen local reply udp port error") logs.Error("listen local reply udp port error")
return return
} }
// reply the local addr // reply the local addr
s.sendUdpReply(c, reply, succeeded, "106.12.146.199") s.sendUdpReply(c, reply, succeeded, serveExternalIp)
defer reply.Close() defer reply.Close()
// new a tunnel to client // new a tunnel to client