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;
            }
    
  • 相关阅读:
    Echrarts的基本API
    Echarts中Option属性设置
    大数据ETL处理时遇到的坑
    模块设计模式
    PAT (Advanced Level) Practice 代码
    递归中的 DFS 与 DP 比较
    CF 1557 D. Ezzat and Grid
    CF 1557 C. Moamen and XOR
    CF 1555 E. Boring Segments
    CF 1555 D. Say No to Palindromes
  • 原文地址:https://www.cnblogs.com/yplong/p/4078120.html
Copyright © 2011-2022 走看看