1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package mhayaNet
- import (
- "net"
- "sync"
- )
- var localIPv4Str = "0.0.0.0"
- var localIPv4Once = new(sync.Once)
- func LocalIPV4() string {
- localIPv4Once.Do(func() {
- if ias, err := net.InterfaceAddrs(); err == nil {
- for _, address := range ias {
- if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
- if ipNet.IP.To4() != nil {
- localIPv4Str = ipNet.IP.String()
- return
- }
- }
- }
- }
- })
- return localIPv4Str
- }
- func GetIPV4(addr net.Addr) string {
- if addr == nil {
- return ""
- }
- if ipNet, ok := addr.(*net.TCPAddr); ok {
- return ipNet.IP.String()
- }
- if ipNet, ok := addr.(*net.UDPAddr); ok {
- return ipNet.IP.String()
- }
- return ""
- }
|