1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-17 11:12:28 +08:00

feat: add func GetRequestPublicIp and IsInternalIP (#40)

* add: add func GetRequestPublicIp and IsInternalIP

* fix: fix test fileutil fail

Co-authored-by: zhanghu <305835360@qq.com>
This commit is contained in:
tangqiu0205
2022-07-13 09:52:35 +08:00
committed by GitHub
parent 56b6844a2d
commit 957878dd98
3 changed files with 82 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ package netutil
import (
"net"
"net/http"
"testing"
"github.com/duke-git/lancet/v2/internal"
@@ -15,6 +16,30 @@ func TestGetInternalIp(t *testing.T) {
assert.IsNotNil(ip)
}
func TestGetRequestPublicIp(t *testing.T) {
assert := internal.NewAssert(t, "TestGetPublicIpInfo")
ip := "36.112.24.10"
request := http.Request{
Method: "GET",
Header: http.Header{
"X-Forwarded-For": {ip},
},
}
publicIp := GetRequestPublicIp(&request)
assert.Equal(publicIp, ip)
request = http.Request{
Method: "GET",
Header: http.Header{
"X-Real-Ip": {ip},
},
}
publicIp = GetRequestPublicIp(&request)
assert.Equal(publicIp, ip)
}
func TestGetPublicIpInfo(t *testing.T) {
assert := internal.NewAssert(t, "TestGetPublicIpInfo")
@@ -43,6 +68,25 @@ func TestIsPublicIP(t *testing.T) {
}
}
func TestIsInternalIP(t *testing.T) {
assert := internal.NewAssert(t, "TestIsInternalIP")
ips := []net.IP{
net.ParseIP("127.0.0.1"),
net.ParseIP("192.168.0.1"),
net.ParseIP("10.91.210.131"),
net.ParseIP("172.20.16.1"),
net.ParseIP("36.112.24.10"),
}
expected := []bool{true, true, true, true, false}
for i := 0; i < len(ips); i++ {
actual := IsInternalIP(ips[i])
assert.Equal(expected[i], actual)
}
}
func TestGetIps(t *testing.T) {
ips := GetIps()
t.Log(ips)