2016-05-23 1 views
1

のIPv6またはIPv4を強制的にどのように私はこれがfamily4に強制的にIPv4の設定IPv4のは、Node.jsの方面からHttpWebRequestのか、WebRequestクラスC#の

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(); 

対IPv6を使用して要求をするためにNode.jsのを伝えるために行うことができ、それを6に設定します。それを設定しないとどちらかの作業ができます。

私はDNSのAまたはAAAAレコードのために自分を自分自身を要求することです一つの方法を考えることができますどのように私はC#(。NET 3.5)で同じことを行うことができます

、直接IP要求を作成し、 host:ヘッダーを設定します。より良い方法がありますか?

答えて

3

ServicePoint.BindIPEndPointDelegateを使用できます。

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

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

    throw new InvalidOperationException("no IPv6 address"); 
}; 
関連する問題