このコードを使用してパブリックIPアドレスを取得します(この投稿のおかげで、C#アプリケーションが実行されているサーバーのIPアドレスを取得する方法は?):
public static string GetPublicIP()
{
try
{
String direction = "";
WebRequest request = WebRequest.Create("http://checkip.dyndns.org/");
using (WebResponse response = request.GetResponse())
{
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
direction = stream.ReadToEnd();
}
}
//Search for the ip in the html
int first = direction.IndexOf("Address: ") + 9;
int last = direction.LastIndexOf("</body>");
direction = direction.Substring(first, last - first);
return direction;
}
catch (Exception ex)
{
return "127.0.0.1";
}
}
しかし、誰が私のWebサイトにアクセスしても、それらはすべて同じIPを取得します。これは、サーバーのパブリックIPであり、現在のユーザーのIPではありません。
サーバーとしてではなく、現在のユーザーのコンテキストでWebRequestを実行することは可能ですか?
または、App_Code内でこの関数を実行して、現在のユーザーRequestを使用できず、代わりにサーバーコンテキストを使用するという問題はありますか?
助けてください!