在go语言中设置源IP地址后在发出HTTP请求示例
向一个服务器发出HTTP请求之前,在另一台机器上使用某些IP地址(比如有权限在防火墙外连接的那个)。这类似于wget的绑定命令。
例如:
wget --bind-address=192.168.1.100 \
如何在go语言中做到这一点?
注意:
这不是为了掩盖或欺骗你的 IP 地址。
解决方案:
建立你自己的HTTP传输客户端,并指定有权限在防火墙外连接的本地IP地址。
代码示例:
package main
import (
"fmt"
"io/ioutil"
"net"
"net/http"
"os"
"time"
)
func main() {
//要使用的本地IP地址
OKAddr := "<change here>"
OKAddress, _ := net.ResolveTCPAddr("tcp", OKAddr)
transport := &http.Transport{
Proxy: http.ProxyFromEnvironment,
Dial: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
OKAddr: OKAddress}).Dial, TLSHandshakeTimeout: 10 * time.Second}
client := &http.Client{
Transport: transport,
}
resp, err := client.Get("https://www.zongscan.com/mysendemail")
if err != nil {
panic(err)
}
defer resp.Body.Close()
html, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
// fmt.Println(os.Stdout, string(html))
// 在go语言中实现下载图片文件的示例 - https://www.zongscan.com/demo333/96161.html
}
相关文章:
在go语言中实现下载图片文件的示例
https://www.zongscan.com/demo333/96161.html
相关文章