mirror of https://github.com/grafana/grafana
parent
d907b1ec6b
commit
e08f61059b
@ -0,0 +1,27 @@ |
||||
package util |
||||
|
||||
import ( |
||||
"net" |
||||
"strings" |
||||
) |
||||
|
||||
// ParseIPAddress parses an IP address and removes port and/or IPV6 format
|
||||
func ParseIPAddress(input string) string { |
||||
var s string |
||||
lastIndex := strings.LastIndex(input, ":") |
||||
|
||||
if lastIndex != -1 { |
||||
s = input[:lastIndex] |
||||
} |
||||
|
||||
s = strings.Replace(s, "[", "", -1) |
||||
s = strings.Replace(s, "]", "", -1) |
||||
|
||||
ip := net.ParseIP(s) |
||||
|
||||
if ip.IsLoopback() { |
||||
return "127.0.0.1" |
||||
} |
||||
|
||||
return ip.String() |
||||
} |
@ -0,0 +1,14 @@ |
||||
package util |
||||
|
||||
import ( |
||||
"testing" |
||||
|
||||
. "github.com/smartystreets/goconvey/convey" |
||||
) |
||||
|
||||
func TestParseIPAddress(t *testing.T) { |
||||
Convey("Test parse ip address", t, func() { |
||||
So(ParseIPAddress("192.168.0.140:456"), ShouldEqual, "192.168.0.140") |
||||
So(ParseIPAddress("[::1:456]"), ShouldEqual, "127.0.0.1") |
||||
}) |
||||
} |
Loading…
Reference in new issue