当主机的IP地址是动态IP的时候,而本机上运行的服务需要被其他设备访问。就产生一个需求“本机主动告知本机IP地址”。
这需要一个业务逻辑。
本机运行程序,取得本机IP地址,通过公网(或某固定可访问的地址)通报上去本机IP地址。
addrs, err := net.InterfaceAddrs()
if err != nil{
panic(err)
}
for _, addr := range addrs{
//fmt.Println(addr.String())
//检查ip地址判断是否回还地址
if ipnet, ok := addr.(*net.IPNet);ok && !ipnet.IP.IsLoopback(){
if ipnet.IP.To4() != nil{
fmt.Println(ipnet.IP.String())
}
}
}