utils_test.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package main
  2. import (
  3. "regexp"
  4. "testing"
  5. "github.com/honwen/golibs/cip"
  6. "github.com/honwen/golibs/domain"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestIp2locCN(t *testing.T) {
  10. assert.Equal(t, ip2locCN("202.96.128.86"), "[中国 广东 广州 电信]")
  11. assert.Equal(t, ip2locCN("202.96.209.133"), "[中国 上海 上海 电信]")
  12. assert.Equal(t, ip2locCN("219.141.136.10"), "[中国 北京 北京 电信]")
  13. assert.Equal(t, ip2locCN("210.22.70.3"), "[中国 上海 上海 联通]")
  14. assert.Equal(t, ip2locCN("123.123.123.123"), "[中国 北京 北京 联通]")
  15. assert.Equal(t, ip2locCN("223.87.238.22"), "[中国 四川 成都 移动]")
  16. assert.Equal(t, ip2locCN("101.6.6.6"), "[中国 北京 北京 教育网]")
  17. assert.Equal(t, ip2locCN("168.95.1.1"), "[中国 台湾 中华电信]")
  18. assert.Equal(t, ip2locCN("202.67.240.222"), "[中国 香港]")
  19. assert.Equal(t, ip2locCN("203.189.136.148"), "[柬埔寨 柬埔寨]")
  20. assert.Equal(t, ip2locCN("203.112.2.4"), "[日本 日本]")
  21. assert.Equal(t, ip2locCN("80.80.80.80"), "[荷兰 荷兰]")
  22. assert.Equal(t, ip2locCN("74.82.42.42"), "[美国 加利福尼亚州]")
  23. }
  24. func TestGetIPv4(t *testing.T) {
  25. funcs["myip"] = cip.MyIPv4
  26. ip4 := myip()
  27. assert.True(t, regexp.MustCompile(cip.RegxIPv4).MatchString(ip4) || len(ip4) == 0)
  28. }
  29. func TestGetIPv6(t *testing.T) {
  30. funcs["myip"] = cip.MyIPv6
  31. ip6 := myip()
  32. assert.True(t, regexp.MustCompile(cip.RegxIPv6).MatchString(ip6) || len(ip6) == 0)
  33. }
  34. func TestResloveIPv4(t *testing.T) {
  35. funcs["reslove"] = cip.ResloveIPv4
  36. assert.Contains(t, []string{"8.8.8.8", "8.8.4.4"}, reslove("dns.google"))
  37. assert.Contains(t, []string{"223.6.6.6", "223.5.5.5"}, reslove("dns.alidns.com"))
  38. }
  39. func TestResloveIPv6(t *testing.T) {
  40. funcs["reslove"] = cip.ResloveIPv6
  41. assert.Contains(t, []string{"2001:4860:4860::8844", "2001:4860:4860::8888"}, reslove("dns.google"))
  42. assert.Contains(t, []string{"2400:3200::1", "2400:3200:baba::1"}, reslove("dns.alidns.com"))
  43. }
  44. func TestSplitDomain001(t *testing.T) {
  45. rr, domain := domain.SplitDomainToRR("a.example.com")
  46. assert.Equal(t, rr, "a")
  47. assert.Equal(t, domain, "example.com")
  48. }
  49. func TestSplitDomain002(t *testing.T) {
  50. rr, domain := domain.SplitDomainToRR("example.com")
  51. assert.Equal(t, rr, "@")
  52. assert.Equal(t, domain, "example.com")
  53. }
  54. func TestSplitDomain003(t *testing.T) {
  55. rr, domain := domain.SplitDomainToRR("*.example.com")
  56. assert.Equal(t, rr, "*")
  57. assert.Equal(t, domain, "example.com")
  58. }
  59. func TestSplitDomain004(t *testing.T) {
  60. rr, domain := domain.SplitDomainToRR("*.a.example.com")
  61. assert.Equal(t, rr, "*.a")
  62. assert.Equal(t, domain, "example.com")
  63. }
  64. func TestSplitDomain005(t *testing.T) {
  65. rr, domain := domain.SplitDomainToRR("*.b.a.example.com")
  66. assert.Equal(t, rr, "*.b.a")
  67. assert.Equal(t, domain, "example.com")
  68. }
  69. func TestSplitDomain006(t *testing.T) {
  70. rr, domain := domain.SplitDomainToRR("a.example.co.kr")
  71. assert.Equal(t, rr, "a")
  72. assert.Equal(t, domain, "example.co.kr")
  73. }
  74. func TestSplitDomain007(t *testing.T) {
  75. rr, domain := domain.SplitDomainToRR("*.a.example.co.kr")
  76. assert.Equal(t, rr, "*.a")
  77. assert.Equal(t, domain, "example.co.kr")
  78. }
  79. func TestSplitDomain008(t *testing.T) {
  80. rr, domain := domain.SplitDomainToRR("example.co.kr")
  81. assert.Equal(t, rr, "@")
  82. assert.Equal(t, domain, "example.co.kr")
  83. }