MM-15325: Allowing to configure the device for detect the IP in HA clusters (#10917)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9445cb29f5
Коммит
969c032a1e
@@ -302,16 +302,35 @@ func StringFromJson(data io.Reader) string {
|
||||
}
|
||||
}
|
||||
|
||||
func GetServerIpAddress() string {
|
||||
if addrs, err := net.InterfaceAddrs(); err != nil {
|
||||
return ""
|
||||
func GetServerIpAddress(iface string) string {
|
||||
var addrs []net.Addr
|
||||
if len(iface) == 0 {
|
||||
var err error
|
||||
addrs, err = net.InterfaceAddrs()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
} else {
|
||||
for _, addr := range addrs {
|
||||
|
||||
if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() && !ip.IP.IsLinkLocalUnicast() && !ip.IP.IsLinkLocalMulticast() {
|
||||
if ip.IP.To4() != nil {
|
||||
return ip.IP.String()
|
||||
interfaces, err := net.Interfaces()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
for _, i := range interfaces {
|
||||
if i.Name == iface {
|
||||
addrs, err = i.Addrs()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, addr := range addrs {
|
||||
|
||||
if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() && !ip.IP.IsLinkLocalUnicast() && !ip.IP.IsLinkLocalMulticast() {
|
||||
if ip.IP.To4() != nil {
|
||||
return ip.IP.String()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user