C#
 Computer >> コンピューター >  >> プログラミング >> C#

ASP.NET MVC C#でクライアントのIPアドレスを取得するにはどうすればよいですか?


ネットワーク上のすべてのマシンには一意の識別子があります。メールで送信する手紙の宛先を指定するのと同じように、コンピューターは一意の識別子を使用して、ネットワーク上の特定のコンピューターにデータを送信します。インターネット上のすべてのコンピュータを含む今日のほとんどのネットワークは、ネットワーク上で通信する方法の標準としてTCP/IPプロトコルを使用しています。 TCP / IPプロトコルでは、コンピューターの一意の識別子はそのIPアドレスと呼ばれます。

HttpRequest.UserHostAddressプロパティの使用

using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   public class HomeController : Controller{
      public string Index(){
         string ipAddress = Request.UserHostAddress;
         return ipAddress;
      }
   }
}

コントローラの外部、つまり通常のクラスでIPアドレスを取得する場合は、以下のようにすることができます。

using System.Web;
namespace DemoMvcApplication.Helpers{
   public static class DemoHelperClass{
      public static string GetIPAddress(){
         string ipAddress = HttpContext.Current.Request.UserHostAddress;
         return ipAddress;
      }
   }
}

ServerVariablesの使用例

using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   public class HomeController : Controller{
      public string Index(){
         string ipAddress = Request.ServerVariables["REMOTE_ADDR"];
         return ipAddress;
      }
   }
}

出力

ASP.NET MVC C#でクライアントのIPアドレスを取得するにはどうすればよいですか?

アプリケーションをローカルで実行しているため、ローカルホストのIPアドレスは::1です。ローカルホストの名前は通常、IPv4ループバックアドレス127.0.0.1とIPv6ループバックアドレス::1

に解決されます。
  1. C#ASP.NET WebAPIでQuerystringパラメーターを使用してバージョン管理を行う方法は?

    DefaultHttpControllerSelector Web APIのクラスは、URIで送信する適切なコントローラーアクションメソッドを選択する責任があります。 以下のようなクエリ文字列にバージョニングを実装する必要があるとします v=1 StudentsV1Controller (Version 1) v=2 StudentsV2Controller (Version 2) http:// localhost:58174 / api / student?v =1のようなクエリ文字列でバージョン情報を渡すと、DefaultHttpControllerSelectorに存在するSel

  2. C#ASP.NET WebAPIでアクションメソッドにエイリアス名を割り当てるにはどうすればよいですか?

    コントローラのパブリックメソッドは、アクションメソッドと呼ばれます。 DemoControllerクラスがApiControllerから派生し、名前がGet、Post、PutandDeleteなどのHTTP動詞と一致する複数のアクションメソッドを含む例を考えてみましょう。 例 public class DemoController : ApiController{    public IHttpActionResult Get(){       //Some Operation       return Ok();