2

我的 ISP 不支持IPv6,因此我只有 IPv4 地址。假设我们在http://tunnelbroker.net/上有一个帐户,在http://www.sixxs.net/上有一个帐户。这些资源中的每一个都提供了从 IPv4 到 IPv6 的隧道,据我所知,在输出中您可以分别访问 IPv6 网络和 IPv6 地址。

问题如下 - 我需要一个具有两个线程的应用程序,每个线程都将使用自己的隧道选项,例如服务器 IPv4 地址、可用的 DNS 解析器等。显然,线程必须并行工作 + 请记住可能会有超过他们两个。是否可以在不使用 netsh 修改全局窗口设置的情况下以某种方式组织它?也许有一种方法可以只为线程设置隧道选项,就像它在HttpWebRequest

HttpWebRequest.Proxy = new WebProxy(); //

好的,所以如果我们使用较低级别的 API,我需要做什么才能将默认的 HttpWebRequests/Responses 放入这样的隧道中(如果我理解正确的话,ofc)?

*已编辑

这些是 tunnelbroker.com 建议申请默认隧道工作的设置:

netsh interface teredo set state disabled
netsh interface ipv6 add v6v4tunnel IP6Tunnel my_ip_here server_ip_here
netsh interface ipv6 add address IP6Tunnel 2001:470:18:201::2
netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:18:201::1

实际上,我正在寻找任何提示,因为我是低级网络编程的新手。

4

1 回答 1

1

6to4 隧道为您的机器提供了一个实际的 IPv6 地址。您可以使用多个 6to4,并且您将获得多个 IPv6 地址。要指定要使用哪一个,您需要将套接字绑定到您想要的 IP。

大多数更高级别的 API 不支持设置它们绑定的 IP——你在这里很不走运,完全受 API 开发人员的摆布。大多数 API 甚至不会尝试自己绑定到特定地址,而是让操作系统来处理选择。这是一个奇怪的要求,所以很难责怪他们:)

于 2012-12-18T21:37:09.523 回答