zoukankan      html  css  js  c++  java
  • ASP.NET获取IP的6种方法

    服务端:

    //方法一

    HttpContext.Current.Request.UserHostAddress;

    //方法二

    HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

    //方法三

    string strHostName = System.Net.Dns.GetHostName();

    string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

    //方法四(无视代理)

    HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

    客户端:

    //方法五

    var ip = '<!--#echo var="REMOTE_ADDR"-->';

    alert("Your IP address is "+ip);

    //方法六(无视代理)

    function GetLocalIPAddress()

    {

    var obj = null;

    var rslt = "";

    try

    {

    obj = new ActiveXObject("rcbdyctl.Setting");

    rslt = obj.GetIPAddress;

    obj = null;

    }

    catch(e)

    {

    //

    }

    return rslt;

    }

    来自印度的MCT Maulik Patel提供了一种服务端的解决方案,很好:

    if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // using proxy

    {

    ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP.

    }

    else// not using proxy or can't get the Client IP

    {

    ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.

    }

    外加一种 最实用的:

     这个要using System.Net;

            /// <summary>
            /// 获取ip地址
            /// </summary>
            /// <returns></returns>
            private string GetIpAddress()
            {
                string ipAddress = "127.0.0.1";
                IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());
                foreach (IPAddress ip in ips)
                {
                    if (ip.AddressFamily.ToString().ToLower().Equals("internetwork"))
                    {
                        ipAddress = ip.ToString();
                        return ipAddress;
                    }
                }
    
                return ipAddress;
            }
    
  • 相关阅读:
    Python
    Python
    Redis
    android和.net webservice中的DES加密算法
    android studio中使用recyclerview小白篇(四)
    android studio中使用recyclerview小白篇(三)
    android studio中使用recyclerview小白篇(二)
    android studio中使用recyclerview小白篇(一)
    Fragment之间通过add切换时的显示与隐藏
    android报错:org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject
  • 原文地址:https://www.cnblogs.com/yplong/p/4078120.html
Copyright © 2011-2022 走看看