Golang GO语言如何获得外网IP、IPV4、IPV6
1. 简单方法:使用NETARM提供的IP查询网址获取IP,支持IPV4和IPV6。
#注意事项:此方式不能用于生产环境,请求量超过200次/天/IP段,则可能被屏蔽!
(1) 获取IPV4:
(2) 获取IPV6:

GO语言函数:

func getIPV4() string {
resp, err := http.Get("https://ipv4.netarm.com")
if err != nil {
return ""
}
defer resp.Body.Close()
content, _ := ioutil.ReadAll(resp.Body)
return string(content)
}

func getIPV6() string {
resp, err := http.Get("https://ipv6.netarm.com")
if err != nil {
return ""
}
defer resp.Body.Close()
content, _ := ioutil.ReadAll(resp.Body)
return string(content)
}

#只需要把网址替换成你需要的即可。

2. GO语言可以通过直接读取网卡的方式获取到外网IPV6。

func getIPV6Lan() string {
addrs, err := net.InterfaceAddrs()
if err != nil {
return ""
}
for _, addr := range addrs {
ipv6 := regexp.MustCompile(`(\w+:){7}\w+`).FindString(addr.String())
if str.Count(ipv6, ":") == 7 {
return ipv6
}
}
return ""
}

#此方法一般情况下是可以正确获取到IP的

3. 可能需要引入:

import "fmt";
import "ini";
import "io/ioutil";
import "log";
import "net";
import "net/http";
import "os";
import "path";
import "path/filepath";
import "regexp";
import "runtime";
import str "strings";
import "time";
  • 真诚Empressment
  • 高效Efficiency
  • 进取Enterprise
WEIXIN
PHONE
CALL
QQ
TOP
X