首页 > c# 获取客户端IP地址方法

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]+"
"); 

获取客户端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 = 没数值或不显示

转载于:https://www.cnblogs.com/dylanblog/p/4343809.html

更多相关:

  • /// 获得客户端IP    ///     ///     private string getIp()    {        // 穿过代理服务器取远程用户真实IP地址        string Ip = string.Empty;        if (Request.ServerVar...

  • Request.ServerVariables("Url") 返回服务器地址 Request.ServerVariables("Path_Info") 客户端提供的路径信息 Request.ServerVariables("Appl_Physical_Path") 与应用程序元数据库路径相应的物理路径 Request.Serve...

  • 滑块式验证码用户通过拖动滑块行为来完成校验,支持PC端及移动端。可以将用户拖动行为的时间、精度,滑动轨迹等信息到服务器,然后进行后台算法验证。特别介绍Blazor 版本的滑块验证码 传送门在线演示效果图快速开始组件依赖 font-awesomeCSS将引入样式表的 标签复制并粘贴到 中,并放在所有其他样式表之前。JS将引入脚本的 用...

  • Ktor 是一个使用 Kotlin 以最小的成本快速创建 Web 应用程序的框架。Ktor 是一个用于在连接系统(connected systems)中构建异步服务器和客户端的 Kotlin 框架。它由 Kotlin 团队创建,因此,它充分利用了 Kotlin 的语言特性,为开发者提供出色的体验和运行时性能。import io.kto...

  • l VDI (Virtual Desktop Infrastructure)VDI构架采用的“集中存储、集中运算”构架,所有的桌面以虚拟机的方式运行在服务器硬件的虚拟化层上,桌面以图像传输的方式发送到客户端。l IDV (Intelligent Desktop Virtualization) 由于VDI方案对服务器资源、网络带宽要求比...

  • 受昨晚闰秒问题影响,今天内网和线上的ATS服务器都出现了CPU负载增高的问题,参见下面的截图 下面是tsar监控到负载异常记录,从今天(20150701)早上8:05分开始: 我们内网和线上的服务器Linux kernel内核版本都是 经过实践摸索,发现如下规律: 1.如果已经开启ntpd,如果昨晚没有关闭n...

  • 下面的安装假定是以root用户身份进行的,Linux服务器已经安装好系统,磁盘已经做好分区。 首先需要认识我们的Linux服务器的硬件配置和软件情况 硬件配置: DELL R720 2U服务器 CPU  8核 Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz 内存 32G 硬盘  系统盘 /...

  • 文章目录1. 解决问题2. 应用场景1. 业务系统的非功能性开发2. 代理模式在RPC、缓存中的应用3. 实现C++实现C语言实现 1. 解决问题 客户端和目标对象之间需要进行交互,此时客户端类和目标对象类相关操作之间的逻辑如果交合在一起,会导致客户端和目标对象模块耦合度升高,后期扩展客户端的功能时,则需要修改两者的源代码。...

  • 微信公众号:compassblog 欢迎关注、转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1、AOP概述 (1)、什么是 AOP AOP 为 Aspect Oriented Programming 的缩写,意为“面向切面编程”。AOP 是 OOP (面向对象)的延续,可以对业务的各个部分进行隔离,从而使得业务逻辑各...