• c# 获取客户端IP地址方法


    客户端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方法

     public string GetIP()
         {
             string uip = "";
             if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
             {
                 uip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
             }
             else
             {
                 uip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
             }
             return uip;
         }
     
    C# ServerVariables参数说明

    Request.ServerVariables["Url"] 
    返回服务器地址

    Request.ServerVariables["Path_Info"] 
    客户端提供的路径信息

    Request.ServerVariables["Appl_Physical_Path"] 
    与应用程序元数据库路径相应的物理路径

    Request.ServerVariables["Path_Translated"] 
    通过由虚拟至物理的映射后得到的路径

    Request.ServerVariables["Script_Name"] 
    执行脚本的名称

    Request.ServerVariables["Query_String"] 
    查询字符串內容

    Request.ServerVariables["Http_Referer"] 
    请求的字符串內容

    Request.ServerVariables["Server_Port"] 
    接受请求的服务器端口号

    Request.ServerVariables["Remote_Addr"] 
    发出请求的远程主机的IP地址

    Request.ServerVariables["Remote_Host"] 
    发出请求的远程主机名称

    Request.ServerVariables["Local_Addr"] 
    返回接受请求的服务器地址

    Request.ServerVariables["Http_Host"] 
    返回服务器地址

    Request.ServerVariables["Server_Name"] 
    服务器的主机名、DNS地址或IP地址

    Request.ServerVariables["Request_Method"] 
    提出请求的方法比如GET、HEAD、POST等等

    Request.ServerVariables["Server_Port_Secure"]
    如果接受请求的服务器端口为安全端口时,则为1,否则为0

    Request.ServerVariables["Server_Protocol"]
    服务器使用的协议的名称和版本

    Request.ServerVariables["Server_Software"]
    应答请求并运行网关的服务器软件的名称和版本

    Request.ServerVariables["All_Http"]
    客户端发送的所有HTTP标头,前缀HTTP_

    Request.ServerVariables["All_Raw"]
    客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_

    Request.ServerVariables["Appl_MD_Path"]
    应用程序的元数据库路径

    Request.ServerVariables["Content_Length"]
    客户端发出內容的长度

    Request.ServerVariables["Https"]
    如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF

    Request.ServerVariables["Instance_ID"]
    IIS实例的ID号

    Request.ServerVariables["Instance_Meta_Path"]
    响应请求的IIS实例的元数据库路径

    Request.ServerVariables["Http_Accept_Encoding"]
    返回內容如:gzip,deflate

    Request.ServerVariables["Http_Accept_Language"]
    返回內容如:en-us

    Request.ServerVariables["Http_Connection"]
    返回內容:Keep-Alive

    Request.ServerVariables["Http_Cookie"]
    返回內容如:nVisiT%

    2DYum=125;ASPSESSIONIDCARTQTRA=FDOBFFABJGOECBBKHKGPFIJI;ASPSESSIONIDCAQQTSRB=LKJJPLABABILLPCOGJGAMKAM;ASPSESSIONIDACRRSSRA=DK

    HHHFBBJOJCCONPPHLKGHPB

    Request.ServerVariables["Http_User_Agent"]
    返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)

    Request.ServerVariables["Https_Keysize"]
    安全套接字层连接关键字的位数,如128

    Request.ServerVariables["Https_Secretkeysize"]
    服务器验证私人关键字的位数如1024

    Request.ServerVariables["Https_Server_Issuer"]
    服务器证书的发行者字段

    Request.ServerVariables["Https_Server_Subject"]
    服务器证书的主题字段

    Request.ServerVariables["Auth_Password"]
    当使用基本验证模式时,客户在密码对话框中输入的密码

    Request.ServerVariables["Auth_Type"]
    是用户访问受保护的脚本时,服务器用於检验用户的验证方法

    Request.ServerVariables["Auth_User"]
    代证的用户名

    Request.ServerVariables["Cert_Cookie"]
    唯一的客户证书ID号

    Request.ServerVariables["Cert_Flag"]
    客户证书标誌,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1

    Request.ServerVariables["Cert_Issuer"]
    用户证书中的发行者字段

    Request.ServerVariables["Cert_Keysize"]
    安全套接字层连接关键字的位数,如128

    Request.ServerVariables["Cert_Secretkeysize"]
    服务器验证私人关键字的位数如1024

    Request.ServerVariables["Cert_Serialnumber"]
    客户证书的序列号字段

    Request.ServerVariables["Cert_Server_Issuer"]
    服务器证书的发行者字段

    Request.ServerVariables["Cert_Server_Subject"]
    服务器证书的主题字段

    Request.ServerVariables["Cert_Subject"]
    客户端证书的主题字段

    Request.ServerVariables["Content_Type"]
    客户发送的form內容或HTTPPUT的数据类型

    Request.ServerVariables["HTTP_X_FORWARDED_FOR"] 
    可以获得位于代理(网关)后面的直接IP,当然必须这个代理支持


    一些被隐藏起来的Request.ServerVariables参数:
    Request.ServerVariables["NUMBER_OF_PROCESSORS"]
    Request.ServerVariables["OS"]
    Request.ServerVariables["WINDIR"]
    Request.ServerVariables["TEMP"]
    Request.ServerVariables["TMP"]
    Request.ServerVariables["ComSpec"]
    Request.ServerVariables["Os2LibPath"]
    Request.ServerVariables["Path"]
    Request.ServerVariables["PATHEXT"]
    Request.ServerVariables["PROCESSOR_ARCHITECTURE"]
    Request.ServerVariables["PROCESSOR_IDENTIFIER"]
    Request.ServerVariables["PROCESSOR_LEVEL"]
    Request.ServerVariables["PROCESSOR_REVISION"]


    本机ip:<%=request.servervariables["remote_addr"]%>


    服务器名:<%=Request.ServerVariables["SERVER_NAME"]%>


    服务器IP:<%=Request.ServerVariables["LOCAL_ADDR"]%>


    服务器端口:<%=Request.ServerVariables["SERVER_PORT"]%>


    服务器时间:<%=now%>


    IIS版本:<%=Request.ServerVariables["SERVER_SOFTWARE"]%>


    脚本超时时间:<%=Server.ScriptTimeout%>


    本文件路径:<%=server.mappath(Request.ServerVariables["SCRIPT_NAME"])%>


    服务器CPU数量:<%=Request.ServerVariables["NUMBER_OF_PROCESSORS"]%>


    服务器解译引擎:<%=ScriptEngine & "/"& ScriptEngineMajorVersion&"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>


    服务器操作系统:<%=Request.ServerVariables["OS"]%>


    支持的文件类型:<%=Request.ServerVariables["HTTP_Accept"]%>


    访问的文件路径:<%=Request.ServerVariables["HTTP_url"]%>


    用户代理的信息:<%=Request.ServerVariables["HTTP_USER_AGENT"]%>

    Request.ServerVariables变量意义. http代理相关知识
    Request.ServerVariables["HTTP_VIA"]---------可以获得用户内部的ip
    Request.ServerVariables["HTTP_X_FORWARDED_FOR"]---------可以知道代理服务器的服务器名以及端口
    Request.ServerVariables["REMOTE_ADDR"]-- 发出请求的远程主机的 IP 地址。

    http代理相关知识
    关键就在HTTP_X_FORWARDED_FOR
    使用不同种类代理服务器,上面的信息会有所不同:

    一、没有使用代理服务器的情况:
    REMOTE_ADDR = 您的 IP
    HTTP_VIA = 没数值或不显示
    HTTP_X_FORWARDED_FOR = 没数值或不显示

    二、使用透明代理服务器的情况:Transparent Proxies
    REMOTE_ADDR = 代理服务器 IP 
    HTTP_VIA = 代理服务器 IP
    HTTP_X_FORWARDED_FOR = 您的真实 IP
    这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

    三、使用普通匿名代理服务器的情况:Anonymous Proxies
    REMOTE_ADDR = 代理服务器 IP 
    HTTP_VIA = 代理服务器 IP
    HTTP_X_FORWARDED_FOR = 代理服务器 IP
    隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

    四、使用欺骗性代理服务器的情况:Distorting Proxies
    REMOTE_ADDR = 代理服务器 IP 
    HTTP_VIA = 代理服务器 IP 
    HTTP_X_FORWARDED_FOR = 随机的 IP
    告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

    五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)
    REMOTE_ADDR = 代理服务器 IP
    HTTP_VIA = 没数值或不显示
    HTTP_X_FORWARDED_FOR = 没数值或不显示

  • 相关阅读:
    完美解决Python与anaconda之间的冲突问题
    ansible之roles
    ansible剧本之playbook操作
    git从远程仓库拉取内容或向远程仓库上传内容
    python操作excel
    nginx基于uwsgi部署Django
    第二篇:版本控制git之分支
    笔试题92-101
    Django总结
    笔试题70-91
  • 原文地址:https://www.cnblogs.com/dylanblog/p/4343809.html
Copyright © 2020-2023  润新知