博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取IP地址方法
阅读量:6852 次
发布时间:2019-06-26

本文共 1141 字,大约阅读时间需要 3 分钟。

//方法一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();

      但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。

  要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。

  不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的IP。

  还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:

if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // 服务器, using proxy   {   得到真实的客户端地址   ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP.   }   else//如果没有使用代理服务器或者得不到客户端的ip 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.   }

    有些客户端会因为“header_access deny”的安全设置而不发给我们Ip

转载于:https://www.cnblogs.com/monian/archive/2012/10/31/2747707.html

你可能感兴趣的文章
sed命令详解及运用
查看>>
一篇文章让你全部看懂!内存-java模型-jvm结构
查看>>
[转] Valgrind使用
查看>>
0023-HOSTS配置问题导致集群异常故障分析
查看>>
《软件开发工具》要点
查看>>
监控、监控客户机-添加主机、管理模板、管理图形和窗口、配置触发器,zabbix邮件告警、zabbix监控Nginx、Tomcat、MySQL...
查看>>
原子变量与synchronized详细解释
查看>>
OSChina 周一乱弹 —— 为单身狗准备的菜
查看>>
基础总结篇之二:Activity的四种launchMode
查看>>
iOS开发 图形变换-做一个正方体
查看>>
iOS开发笔试面试- 数据类型
查看>>
Java输入输出流
查看>>
如何找回SecureCRT密码
查看>>
二分查找的扩展
查看>>
Bash安全漏洞——通过专门制作的环境变量注入漏洞
查看>>
用 sublime 浏览代码
查看>>
重新编译hadoop 32bit-64bit
查看>>
邮件告警系统
查看>>
Spring RMI
查看>>
我的友情链接
查看>>