gpt4 book ai didi

go - 向代理发送 TCP 数据包

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:51 24 4
gpt4 key购买 nike

我熟悉 HTTP_PROXY 并定义了一个 DefaultTransport 来代理 HTTP 请求。但是我找不到任何关于如何为 TCP 做同样的事情。这可能吗?还是必须依靠代理本身来转发数据包?

最佳答案

这是可能的,但不能使用 HTTP 代理。你想要一个 SOCKS 代理。查看https://godoc.org/golang.org/x/net/proxy提供 SOCKS5 拨号器的软件包。

package main

import (
"fmt"
"os"

"golang.org/x/net/proxy"
)

var (
proxy_addr = "my.socks.proxy.local:8088"
remote_addr = "chat.freenode.net:6697"
)

func main() {
dialer, err := proxy.SOCKS5("tcp", proxy_addr, nil, proxy.Direct)
if err != nil {
fmt.Fprintln(os.Stderr, "proxy connection error:", err)
os.Exit(1)
}
conn, err := dialer.Dial("tcp", remote_addr)
if err != nil {
fmt.Fprintln(os.Stderr, "remote connection error:", err)
os.Exit(1)
}
defer conn.Close()

// communicate with remote addr here
}

关于go - 向代理发送 TCP 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40749222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com