【问题标题】:How to pass IP value in code behind file?如何在文件后面的代码中传递 IP 值?
【发布时间】:2017-08-19 10:18:23
【问题描述】:

窗口加载时会生成IP 我想调用Code Behind page load中的IP

JavaScript

<script type="text/javascript">
        window.onload = function () {
            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "https://api.ipify.org?format=jsonp&callback=DisplayIP";
            document.getElementsByTagName("head")[0].appendChild(script);
        };
        function DisplayIP(response) {
            document.getElementById("<%=ipaddress.ClientID%>").innerHTML = "Your IP Address is " + response.ip;
        }
</script>

标签

<span id = "ipaddress" runat="server"></span>

文件隐藏代码:

protected void Page_Load(object sender, EventArgs e)
{

    MyIP = ipaddress.InnerText;
    url = "http://ip-api.com/xml/" + MyIP + "";
}

Empty

【问题讨论】:

    标签: javascript c# jquery html asp.net


    【解决方案1】:

    ipaddress 不包含预期值的原因是因为Page_Load 事件发生在 Javascript 执行之前。您可以尝试改用文本框的 TextChanged 事件。

    或者,您可以直接在代码隐藏中获取客户端的 IP 地址,而无需使用 javascript (see here)。

    这是建议的解决方案之一(取自上面的链接):

    protected string GetIPAddress()
    {
        System.Web.HttpContext context = System.Web.HttpContext.Current; 
        string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
        if (!string.IsNullOrEmpty(ipAddress))
        {
            string[] addresses = ipAddress.Split(',');
            if (addresses.Length != 0)
            {
                return addresses[0];
            }
        }
    
        return context.Request.ServerVariables["REMOTE_ADDR"];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多