()
| 327 | } |
| 328 | |
| 329 | func GetLocalPublicIPv4() net.IP { |
| 330 | addresses, err := net.InterfaceAddrs() |
| 331 | if err != nil { |
| 332 | return nil |
| 333 | } |
| 334 | |
| 335 | for _, addr := range addresses { |
| 336 | ipnet, ok := addr.(*net.IPNet) |
| 337 | if !ok || ipnet.IP.To4() == nil { |
| 338 | continue |
| 339 | } |
| 340 | if ipnet.IP.IsGlobalUnicast() && !ipnet.IP.IsPrivate() { |
| 341 | return ipnet.IP.To4() |
| 342 | } |
| 343 | } |
| 344 | return nil |
| 345 | } |