关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

使用C#获取服务器IP,客户端IP以及Request.ServerVariables详细说明

发布时间:2019-11-09 09:33:45

C#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明


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



相关阅读

公司管理必须的20条军规[参考]云南昆明天猫旗舰店如何开_怎么开_要什么条件云南大王-通俗理解spring源码(三)—— 获取xml的验证模式 云南大王-用户登录 云南大王-【Golang进阶】指针的详细讲解 云南大王-Java 单线程代码ThreadLocal串值问题 云南大王-Java 实例级别的锁和类级别的锁 云南大王-工作流引擎会签,加签,主持人,组长模式专题讲解 云南大王-Android连载5云南大王-NTP对时器(NTP对时服务器)重要性!京准电子科技 云南大王-关于redis单线程的分析 云南大王-CVE云南大王-PHP SESSION反序列化本地样例分析 云南大王-这不就是多线程ThreadPoolExecutor和阻塞队列吗 云南大王-Tomcat AJP 文件包含漏洞(CVE云南大王-讲真,这两款idea插件,能治愈你英语不好的病 云南大王-消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型? 云南大王-JVM系列十三(类加载器). 云南大王-Win10安装MySQL8压缩包版 云南大王-初始WebApi(2) 云南大王-初识人工智能(二):机器学习(一):sklearn特征抽取 云南大王-Popup中ListBox的SelectChange事件关闭弹出窗体后主窗体点击无效BUG 云南大王-基础知识记录 云南大王-FastDFS搭建图片服务器 云南大王-git/sourcetree解决本地仓库历史合并到线上仓的历史数据合并问题_refusing to merge unrelated histories 云南大王-js判断字符是否在数组中【转】 云南大王-Python 云南大王-面向对象之多线程(可捎带电梯调度) 云南大王-Python练习题2.5求奇数分之一序列前N项和(存在问题) 云南大王-React 中的前端路由 react云南大王-VSCODE 远程开发树莓派 云南大王-React新闻网站云南大王-vs .net CS0006 C# 未能找到元数据文件 .dll 云南大王-Vue.js 技术揭秘 云南大王-流程控制语句云南大王-Python学习笔记:Python的时间操作(time,datetime,timedelta,calendar) 云南大王-流程控制语句云南大王-golang Gin framework with websocket 云南大王-多重判断if..else嵌套语句 云南大王-用户登录 云南大王-流程控制语句云南大王-密码类 云南大王-Unity2018发布WebGL注意事项总结 云南大王-web系统安全运营之基础云南大王- 流程控制语句云南大王-中型WPF客户端开发项目总结(3.3.4) 云南大王-流程控制语句云南大王-流程控制语句云南大王-流程控制语句云南大王-中型WPF客户端开发项目总结(4) 云南大王-流程控制语句云南大王-ASP.NET Core笔记(4) 云南大王-C# 基础知识系列云南大王-让 .NET 轻松构建中间件模式代码(二) 云南大王-基于 HTML5 WebGL 的 水泥工厂可视化系统 云南大王-.NET Core 3 WPF MVVM框架 Prism系列之导航系统 云南大王-《JavaScript异步编程》精读笔记 云南大王-合理使用CSS框架,加速UI设计进程 云南大王-CLSID 为 {000209FF云南大王-从零基础转行到前端大牛,需要经过哪几个阶段? 云南大王-一个简单的例子看明白 async await Task 云南大王-【目前】宇宙第一IDE Visual Studio 合并压缩css、js扩展组件云南大王-写一个通用的List集合导出excel的通用方法 云南大王-Bootstrap4 按钮组+徽章(Badges)+进度条+分页+列表组 云南大王-Web前端工程师需要学些什么? 云南大王-react嵌套路由 云南大王-【java框架】Struts2(2) 云南大王-javaSE笔记云南大王-.net core 集成 sentry 进行异常报警 云南大王-Java の 四种引用 云南大王-JVM 虚拟机&&类加载(一) 云南大王-使用Fastjson实现JSON与JavaBean之间互相转换 云南大王-Python操作Oracle数据库:cx_Oracle 云南大王-为什么要用内插字符串代替string.format 云南大王-作为字节跳动的面试官,有些话我不得不说! 云南大王-微信公众号自定义菜单与启用服务器配置冲突(图文消息、链接及文本回复) 云南大王-C#队列学习笔记:RabbitMQ延迟队列 云南大王-Disruptor 基础篇 云南大王-C#获取设备(Audio和Video)名称 简单整理 云南大王-基于注解的IOC配置 云南大王-C#调用EnumDevice获取设备信息 云南大王-Jenkins基础系统之更换镜像源 云南大王-Jenkins基础系统之完整的.net项目编译 云南大王-Scala学习系列(二)——环境安装配置 云南大王-WinForm中DataGridView复制选中单元格内容解决方案 云南大王-关键词匹配优化(第0篇)—— 问题和思路 云南大王-ASP.NET CORE WEBAPI文件下载 云南大王-GC垃圾回收器 云南大王-多线程之旅(Task 任务) 云南大王-当模板方法遇到了委托函数,你的代码又可以精简了 云南大王-基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇) 云南大王-关键词匹配优化(第1篇)—— 测试计算过程 云南大王-原理解密 → Spring AOP 实现动态数据源(读写分离),底层原理是什么 云南大王-Navicat 密码加密算法 云南大王-【WPF学习】第六十六章 支持可视化状态 云南大王-composer安装 windows 云南大王-ASP.NET Core中的Controller 云南大王-HttpClient来自官方的JSON扩展方法 云南大王-Python3标准库:http.cookies HTTP cookie 云南大王-[WPF 学习] 13.DataTrigger之EnterAction和ExitAction
/template/Home/Zkeys/PC/Static