none
HTTPリクエストで送信元IPを指定する方法 RRS feed

  • 質問

  • こんにちは、お世話になります。

    Socketの命令ですとBindを使用して送信元IPを指定する事ができますが、

    HttpClientでは、送信元IPを指定する事はできないのでしょうか?

    できないのであれば、HttpRequestとかWebClientでもできればいいのですが。

    Socket以外で送信元IPを指定する方法をご存知の人、教えてください。

    宜しくお願い致します。

    2019年3月4日 7:43

回答

  • HttpClientには用意されていませんね。

    HttpWebRequestであれば、.ServicePoint.BindIPEndPointDelegateを設定することでローカルのエンドポイントを使用できます。

    // .NET FrameworkのHttpClientは内部でHttpWebRequestを使っているはずなので、ServicePointManager.FindServicePiontから同様にBindIPEndPointDelegateを設定することで対応できるかも…? .NET Coreだとどうだろう。

    • 回答としてマーク miniHORI 2019年3月4日 10:27
    2019年3月4日 8:28

すべての返信

  • HttpClientには用意されていませんね。

    HttpWebRequestであれば、.ServicePoint.BindIPEndPointDelegateを設定することでローカルのエンドポイントを使用できます。

    // .NET FrameworkのHttpClientは内部でHttpWebRequestを使っているはずなので、ServicePointManager.FindServicePiontから同様にBindIPEndPointDelegateを設定することで対応できるかも…? .NET Coreだとどうだろう。

    • 回答としてマーク miniHORI 2019年3月4日 10:27
    2019年3月4日 8:28
  • HttpClientには用意されていませんね。

    HttpWebRequestであれば、.ServicePoint.BindIPEndPointDelegateを設定することでローカルのエンドポイントを使用できます。

    // .NET FrameworkのHttpClientは内部でHttpWebRequestを使っているはずなので、ServicePointManager.FindServicePiontから同様にBindIPEndPointDelegateを設定することで対応できるかも…? .NET Coreだとどうだろう。

    ありがとうございます。BindIPEndPointDelegateと言うキーワードを元に調べたら、下記のような

    書き方が見付かりました。「1234+・・・」と言う点など不明ですが、なんとか解決の糸口が見付かりました。

    ServicePoint.BindIPEndPointDelegate = (s, ep, retries) => new IPEndPoint(IPAddress.Parse(sSourceIP), 1234 + retries);

    2019年3月4日 10:27