• 【转】C#获取客户端及服务器端主机信息及其获取IP地址


    原文发布时间为:2009-10-28 —— 来源于本人的百度文章 [由搬家工具导入]

    小结:

    1、REMOTE_ADDR 不可被修改,但是可能会获得代理服务器的IP,而不是实际客户端的IP。

    2、通过 HTTP_VIA、HTTP_X_FORWARDED_FOR 我们可以获得代理服务器所代理的信息,但是这依靠代理服务器的支持。另外,这两个值可以被修改。我们通过它获得的信息可能是不真实的。另,HTTP_X_FORWARDED_FOR 的信息可能是一个集合,不含 REMOTE_ADDR 中的代理服务器IP

    3、//获取客户端IP地址
        public static string getIP()
        {
            string strIP = String.Empty;
            strIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (string.IsNullOrEmpty(strIP))
            {
                strIP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            if (string.IsNullOrEmpty(strIP))
            {
                strIP = HttpContext.Current.Request.UserHostAddress;
            }
            if (string.IsNullOrEmpty(strIP))
            {
                return "0.0.0.0";
            }
            return strIP;
        }

    客户端ip:
    Request.ServerVariables.Get("Remote_Addr").ToString();
    客户端主机名:
    Request.ServerVariables.Get("Remote_Host").ToString();
    客户端浏览器IE:
    Request.Browser.Browser;
    客户端浏览器 版本号:
    Request.Browser.MajorVersion;//
    客户端操作系统:
    Request.Browser.Platform;

    服务器ip:
    Request.ServerVariables.Get("Local_Addr").ToString();
    服务器名:
    Request.ServerVariables.Get("Server_Name").ToString();

    如果你想进一步了解ServerVariables,可以用
    foreach(String o in Request.ServerVariables){
    Response.Write(o+"="+Request.ServerVariables[o]+"<br>");
    }


    对于了解代理服务器情况的人,我们会知道,如果用户使用了代理服务器,上述代码获得的是代理服务器的IP地址;如果用户使用了多个代理服务器,则是到达服务器的最后一个代理服务器的IP地址。


    REMOTE_ADDR 说明:

    访问客户端的 IP 地址。
    此项信息用户不可以修改。
    如果真的给改了的话,你也和服务器连接不了了,服务器就是按照这个来与客户端建立连接并进行通讯的。实际我测试修改这个 ServerVariables , 一点效果都没有。仍然获得是实际的值。
    另: Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"] 实际是同一个值。

  • 相关阅读:
    linux 环境变量恢复默认值
    怎么查看Eclipse的版本信息
    掌握HDFS的Java API接口访问
    【代理】代理概念
    【DbUtils】轻量级的ORM学习
    【mysql】相关记录
    JWT(JSON Web Tokens)
    将jar包安装到本地仓库
    Spring集成rabbitmq
    spring-rabbit包的引入需要注意的事项
  • 原文地址:https://www.cnblogs.com/handboy/p/7158356.html
Copyright © 2020-2023  润新知