gpt4 book ai didi

c# - 如何为 HttpWebRequest 或 WebRequest C# 强制使用 ipv6 或 ipv4

转载 作者:行者123 更新时间:2023-11-30 20:36:00 26 4
gpt4 key购买 nike

来自 node.js 我可以这样做来告诉 node.js 使用 ipv6 与 ipv4 发出请求

var http = require("http");
var options = {
hostname: "google.com",
family: 4, // set to 6 for ipv6
};
var req = http.request(options, function(res) {
.. handle result here ..
});
req.write("");
req.end();

family 设置为 4 会强制使用 ipv4,将其设置为 6 会强制使用 ipv6。不设置它可以让任何一个工作。

我如何在 C# (.NET 3.5) 中做同样的事情

我可以想到一种方法,即自己为 A 或 AAAA 记录发出 DNS 请求,发出直接 IP 请求并设置 host: header 。有没有更好的办法?

最佳答案

您可以使用 ServicePoint.BindIPEndPointDelegate .

var req = HttpWebRequest.Create(url) as HttpWebRequest;

req.ServicePoint.BindIPEndPointDelegate = (servicePoint, remoteEndPoint, retryCount) =>
{
if (remoteEndPoint.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
{
return new IPEndPoint(IPAddress.IPv6Any, 0);
}

throw new InvalidOperationException("no IPv6 address");
};

关于c# - 如何为 HttpWebRequest 或 WebRequest C# 强制使用 ipv6 或 ipv4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37384945/

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