用go语言写获取公网ip go获取客户端ip地址

Golang--获取本地IP

Golang获取本地IP地址方法,目前了解两种,记录如下:

创新互联主营嘉荫网站建设的网络公司,主营网站建设方案,成都App制作,嘉荫h5微信平台小程序开发搭建,嘉荫网站营销推广欢迎嘉荫等地区企业咨询

方法1:

获取本机公网ip(public ip)

爬虫时,为了避免自己的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版本:

参考链接:

go语言中怎么获取域名对应的ip地址

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())

}

}

}

}


文章名称:用go语言写获取公网ip go获取客户端ip地址
URL标题:http://pwwzsj.com/article/ddcjsji.html