【问题标题】:Asp.Net MVC 3 : Client IP addres Using Javascript [duplicate]Asp.Net MVC3:使用Javascript的客户端IP地址[重复]
【发布时间】:2012-07-18 07:03:45
【问题描述】:

可能重复:
Get Client IP using just Javascript?

我正在开发 .net mvc 3 应用程序。我只想获取客户端的 IP 地址。 如何使用 JavaScript 获取客户端 IP。如果有人知道,请分享。

【问题讨论】:

  • 阅读以下链接 [an-i-lookup-the-ip-address-of-a-hostname-from-javascript][1] [1]: stackoverflow.com/questions/102605/…
  • JavaScript 是客户端脚本,因此它无权访问 Request 对象。服务器正在捕获用户请求,因此只有服务器端脚本可以访问它。在 .NET 中,您拥有获取客户端 IP 的属性:Request.UserHostAddress

标签: javascript jquery asp.net-mvc-3


【解决方案1】:

你不能用 javascript 做到这一点。您可以使用 javascript 向控制器操作发送 AJAX 请求,该操作将返回从 Request.UserHostAddress 读取它的客户端 IP:

public ActionResult GetIP()
{
    return Json(new { ip = Request.UserHostAddress }, JsonRequestBehavior.AllowGet);
}

然后:

var url = '@Url.Action("GetIP", "SomeController")';
$.getJSON(url, function(result) {
    alert(result.ip);
});

【讨论】:

    【解决方案2】:
    <html xmlns="http://www.w3.org/1999/xhtml">
                  <head>
                  <title></title>
                  <script type="text/javascript">
                      window.onload = function () {
                          var script = document.createElement("script");
                          script.type = "text/javascript";
                          script.src = "http://jsonip.appspot.com/?callback=DisplayIP";
                          document.getElementsByTagName("head")[0].appendChild(script);
                      };
                      function DisplayIP(response) {
                          document.getElementById("ipaddress").innerHTML = "Your IP Address is " + response.ip;
                      }
                  </script>
                  </head>
                  <body>
                      <form>
                          <span id = "ipaddress"></span>
                      </form>
                  </body>
                  </html>
    

    【讨论】:

    • 通常情况下,这将提供执行 NAT 的路由器的 IP 地址,而不是客户端本身。由于 ASP.NET 可用,因此可以从对 ASP.NET 服务器的请求中获取该 IP 地址,因此它可能不是 OP 正在寻找的。​​span>
    【解决方案3】:
    <!-- Require jQuery / Anyversion --><script type="text/javascript"  language="Javascript"    src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <!-- Require EasyJQuery After JQuery --><script type="text/javascript"     language="Javascript" src="http://api.easyjquery.com/easyjquery.js"></script>
    <script type="text/javascript" language="Javascript">
    // 1. Your Data Here
    function my_callback(json) {
        alert("IP :" + json.IP + " nCOUNTRY: " + json.COUNTRY);
    }
    
    function my_callback2(json) {
        // more information at http://api.easyjquery.com/test/demo-ip.php
        alert("IP :" + json.IP + " nCOUNTRY: " + json.COUNTRY + " City: " + json.cityName + " regionName: " + json.regionName);
    }
    
      // 2. Setup Callback Function
      // EasyjQuery_Get_IP("my_callback"); // fastest version
     EasyjQuery_Get_IP("my_callback2","full"); // full version
    </script>​
    

    a working Example

    【讨论】:

      猜你喜欢
      • 2012-12-05
      • 2016-03-27
      • 2013-03-19
      • 2013-05-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 2011-10-04
      相关资源
      最近更新 更多