Golang获取本地IP地址方法,目前了解两种,记录如下:
创新互联主营嘉荫网站建设的网络公司,主营网站建设方案,成都App制作,嘉荫h5微信平台小程序开发搭建,嘉荫网站营销推广欢迎嘉荫等地区企业咨询
方法1:
爬虫时,为了避免自己的IP被封,有时候需要设置反向代理,用其他的IP去爬。那么这里说的IP到底是电脑的什么IP呢?
首先看下 localhost 、 127.0.0.1 、 192.168.x.x 。
这里使用flask开启一个服务,这样本机可以通过 localhost 、 127.0.0.1 、 192.168.x.x (我的是 192.168.1.4 )等地址的5000端口(eg. 192.168.1.4:5000 )访问服务器,而同一局域网的其它设备也可以通过 192.168.1.4:5000 访问我的服务器
这里的 localhost 一般默认指向 127.0.0.1 ,所以只需要看IP
127.0.0.1 是只能自己对自己使用的IP
192.168.x.x 则是局域网下任何设备都可以访问其他设备使用的IP(包括自己对自己)
然后,如果我访问在线网站,或者爬虫,使用的IP并不是上面那两个IP,而是我的运营商分配给我的外网IP(public ip),作为我使用的这个网络的一个身份标识,一般反爬虫封的IP,也就是这个IP了
python版本:
nodejs版本:
参考链接:
package main
import (
"fmt"
"net"
"os"
)
func main() {
addrs, err := net.InterfaceAddrs()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
for _, address := range addrs {
// 检查ip地址判断是否回环地址
if ipnet, ok := address.(*net.IPNet); ok !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
fmt.Println(ipnet.IP.String())
}
}
}
}