[tldr] 使用ip.sb检查自己所在局域网的公网IP

使用ip a等一些命令行工具可以帮助我们检查自己的内网IP,但是,如何获取自己的在公网下的IP(即当前所在的局域网被分配的公网IP)

如果使用爬虫,这个IP也是很重要的.BAN IP就是这个IP

https://ip.sb是一个网络服务WEB界面,用于返回你的公网IP

该网站提供了API接口,返回纯文本的IP地址

http://ip.sb是返回纯文本类型的IP地址信息的接口

使用curl ip.sb可以查看效果

使用编程语言获取自己的IP

curl进行GET访问的时候,会设置自己的请求头user-agent为"User-Agent", "curl/8.6.0"

package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	proxyURL, err := url.Parse("http://127.0.0.1:10809")
	if err != nil {
		panic(err)
	}

	client := &http.Client{
		Transport: &http.Transport{
			Proxy: http.ProxyURL(proxyURL),
		},
	}

	ipUrl := "http://ip.sb"

	req, err := http.NewRequest("GET", ipUrl, nil)
	if err != nil {
		panic(err)
	}

	req.Header.Set("User-Agent", "curl/8.6.0")

	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}

	fmt.Println(string(body))
}

上述代码会通过自己本地的proxy查询自己的proxy的公网IP

这里有2个重点:

  1. 设置user-agent
  2. 使用http协议
posted @ 2025-03-07 10:25  xuhe2  阅读(354)  评论(0)    收藏  举报