Update server.go

This commit is contained in:
Tara Rostami 2024-02-14 13:23:21 +03:30 committed by GitHub
parent a550d7af51
commit f6ebe05905
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -74,8 +74,9 @@ type Status struct {
Recv uint64 `json:"recv"` Recv uint64 `json:"recv"`
} `json:"netTraffic"` } `json:"netTraffic"`
PublicIP struct { PublicIP struct {
IPv4 string `json:"ipv4"` HostName string `json:"hostname"`
IPv6 string `json:"ipv6"` IPv4 string `json:"ipv4"`
IPv6 string `json:"ipv6"`
} `json:"publicIP"` } `json:"publicIP"`
AppStats struct { AppStats struct {
Threads uint32 `json:"threads"` Threads uint32 `json:"threads"`
@ -209,8 +210,22 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status {
logger.Warning("get udp connections failed:", err) logger.Warning("get udp connections failed:", err)
} }
status.PublicIP.IPv4 = getPublicIP("https://api.ipify.org") status.PublicIP.HostName, _ = os.Hostname()
status.PublicIP.IPv6 = getPublicIP("https://api6.ipify.org") // get ip address
netInterfaces, _ := net.Interfaces()
for i := 0; i < len(netInterfaces); i++ {
if len(netInterfaces[i].Flags) > 2 && netInterfaces[i].Flags[0] == "up" && netInterfaces[i].Flags[1] != "loopback" {
addrs := netInterfaces[i].Addrs
for _, address := range addrs {
if strings.Contains(address.Addr, ".") {
status.PublicIP.IPv4 += address.Addr + " "
} else if address.Addr[0:6] != "fe80::" {
status.PublicIP.IPv6 += address.Addr + " "
}
}
}
}
if s.xrayService.IsXrayRunning() { if s.xrayService.IsXrayRunning() {
status.Xray.State = Running status.Xray.State = Running