DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ASP.NETにてHttpWebRequestで使用するIPアドレス

環境/言語:[.NET Framework 2.0 + VB.NET]
分類:[ASP.NET]

ASP.NETにて、HttpWebRequestクラスを使用してあるcgiへPOST処理を行います。
ASP.NETが動作するサーバーにはLANが2つ接続されており、それぞれ
XXX.XXX.XXX.1
XXX.XXX.XXX.2
のように別々のグローバルIPアドレスが設定されています。

IISにてIP毎にWebサイトが作成されており、
当該ASP.NET(が動作するページ)はXXX.XXX.XXX.2のWebサイトに存在します。

このとき、HttpWebRequestクラスにてcgiへPOST処理を行う際、
接続元IPアドレスがXXX.XXX.XXX.1になってしまいます。

接続元IPアドレスをXXX.XXX.XXX.2としてcgiへPOST処理を行いたいのですが、
どうすれば良いのでしょうか?
HttpWebRequestクラスのプロパティや、
Web.configの設定など一通り調べましたが、見つけられませんでした。


尚、サーバーにてIEでWebページを閲覧する際も、
XXX.XXX.XXX.1にて接続しているようです。

よろしくお願いします。
HttpWebRequest だと、ServicePoint プロパティの BindIPEndPointDelegate にローカルの IPEndPoint を返すデリゲートを設定すればいいのかな。
■No23342に返信(Hongliangさんの記事)
> HttpWebRequest だと、ServicePoint プロパティの BindIPEndPointDelegate にローカルの IPEndPoint を返すデリゲートを設定すればいいのかな。

うまくいきました!ありがとうございました。


<VB.NET>

//メイン処理関数内
Dim request As HttpWebRequest = CType(HttpWebRequest.Create("(接続先URL)", HttpWebRequest)
request.ServicePoint.BindIPEndPointDelegate = AddressOf MyBindIPEndPoint

//デリゲート関数
Private Function MyBindIPEndPoint(ByVal servicePoint As System.Net.ServicePoint, ByVal remoteEndPoint As System.Net.IPEndPoint, ByVal retryCount As Integer) As System.Net.IPEndPoint
Dim ipadr As IPAddress = IPAddress.Parse("(使用するIPアドレス文字列)")
Return New IPEndPoint(ipadr, 0)
End Function
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板