【发布时间】:2022-01-23 10:03:45
【问题描述】:
我的电脑有多个 IP 地址(例如:10.1.1.20、192.168.123.30、...)。
使用http.Client连接远程服务器时可以提取连接的本地IP地址吗?
如果http.Client无法做到这一点,还有其他可能的方法吗?
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://www.google.com", nil)
if err != nil {
panic(err)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
// extract the local ip address???
// getsockname(?????)
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("StatusCode=%v\n", resp.StatusCode)
fmt.Printf("%v\n", string(data))
}
【问题讨论】: