GO 请求一个URL如何指定IP?

meiruhua · · 2919 次点击
jan-bar
想要拥有,必定付出。
研究一下go解析DNS的接口,重新实现连接服务器的方法,在里面做你这个特殊判断吧,参考下面代码就行。 ```go package main import ( "context" "net" "net/http" ) func init() { net.DefaultResolver = &net.Resolver{ Dial: func(ctx context.Context, network, address string) (net.Conn, error) { if address == "a.com" { address = "1.1.1.1" } var d net.Dialer return d.DialContext(ctx, network, address) }, } } func main() { http.Get("https://a.com") // 使用全局DNS解析的连接 c := &http.Client{ Transport: &http.Transport{ DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) { if addr == "a.com" { addr = "1.1.1.1" // 自定义当前http.Client的连接 } var d net.Dialer return d.DialContext(ctx, network, addr) }, }, } c.Get("https://a.com") } ```
#5
更多评论
域名服务商添加一条解析记录不就行了?
#1
1楼 <a href="/user/mingliangge" title="@mingliangge">@mingliangge</a> 大哥,实际情况需求就是这样,对方提供个域名,访问的时候请求方需指定对应IP,这些都是内部对接接口,不对外所以没有解析,银行内部接口都是这些玩意。
#2