1. public class IPHelper
  2. {
  3. public static string GetVisitorsIPAddress()
  4. {
  5. string result = String.Empty;
  6.  
  7. result = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
  8.  
  9. // 如果使用代理,获取真实IP
  10. if (result != null && result.IndexOf(".") == -) //没有“.”肯定是非IPv4格式
  11. result = null;
  12. else if (result != null)
  13. {
  14. if (result.IndexOf(",") != -)
  15. {
  16. //有“,”,估计多个代理。取第一个不是内网的IP。
  17. result = result.Replace(" ", "").Replace("'", "");
  18. string[] temparyip = result.Split(",;".ToCharArray());
  19. for (int i = ; i < temparyip.Length; i++)
  20. {
  21. if (IsIPAddress(temparyip[i])
  22. && temparyip[i].Substring(, ) != "10."
  23. && temparyip[i].Substring(, ) != "192.168"
  24. && temparyip[i].Substring(, ) != "172.16.")
  25. {
  26. return temparyip[i]; //找到不是内网的地址
  27. }
  28. }
  29. }
  30. else if (IsIPAddress(result)) //代理即是IP格式
  31. return result;
  32. else
  33. result = null; //代理中的内容 非IP,取IP
  34. }
  35. if (null == result || result == String.Empty)
  36. result = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
  37.  
  38. if (result == null || result == String.Empty)
  39. result = System.Web.HttpContext.Current.Request.UserHostAddress;
  40.  
  41. return result;
  42. }
  43.  
  44. /// <summary>
  45. /// 判断是否是IP地址格式 0.0.0.0
  46. /// </summary>
  47. /// <param name="str1">待判断的IP地址</param>
  48. /// <returns>true or false</returns>
  49. private static bool IsIPAddress(string str1)
  50. {
  51. if (str1 == null || str1 == string.Empty || str1.Length < || str1.Length > ) return false;
  52.  
  53. string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$";
  54.  
  55. Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
  56. return regex.IsMatch(str1);
  57. }
  58. }

简单的访客IP获取类-IPHelper.cs的更多相关文章

  1. 获取访客IP、地区位置信息、浏览器、来源页面

    <?php //这个类似用来获取访客信息的 //方便统计 class visitorInfo { //获取访客ip public function getIp() { $ip=false; if ...

  2. PHP获取访客IP、地区位置信息、浏览器、来源页面

    不多说了,每个方法都注释了,可以直接用: <?php //这个类似用来获取访客信息的 //方便统计 class visitorInfo { //获取访客ip public function ge ...

  3. 利用PHP获取访客IP、地区位置、浏览器及来源页面等信息

    这篇文章主要介绍了利用PHP获取访客IP.地区位置.浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 前言 本文中 ...

  4. PHP实现网站访客来访显示访客IP&浏览器&操作系统

    PHP实现网站访客来访显示访客IP&浏览器&操作系统 代码 function getOs() { if (!empty($_SERVER['HTTP_USER_AGENT'])) { ...

  5. Wordpress用文件记录访客 IP和访问量

    1.记录访问量,显示访客IP [php原码] <?php /*打开文件用于记录访问量,如果文件不存在自动创建*/ $counterFile = "counter.txt"; ...

  6. JS获取访客IP+判断归属地+自动跳转

    由于公司业务需要,需要对网站特定地区的访客进行不同跳转.比如,上海的用户跳转到“shanghai.url.cn”,南京的用户跳转到“nanjing.url.cn”.下面就是我的实现方法,分享出来,顺便 ...

  7. PHP获取访客ip、系统、浏览器等信息[转]

    1.获取访客操作系统信息   <?php   function GetOs() {   if (!empty($_SERVER['HTTP_USER_AGENT'])) {   $OS = $_ ...

  8. JS获取访客IP进行自动跳转

    因业务需要进行地区判断跳转指定站点,下面是我个人实现的办法,分享给大家,仅供参考,切勿做非法用途 第一步,获取IP并判断归属地 直接使用搜狐的IP库查询接口 <script type=" ...

  9. 【竞价网站绝技】根据访客ip,页面显示访客所属城市的html代码(借用YY IP地址库)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 用QT 还是MFC ? (转)

    我曾经使用过QT和MFC来开发过软件,我想和大家分享我使用他们时所体会的不同之处. 我并非一个职业作家,这篇文章可能看起来不如专业的杂志和网站上的那么条理清晰.但是,我在这里是用我自己的语言来表达我自 ...

  2. easyui-combobox小Demo

    <script type="text/javascript"> $("#Function_TypeSelect").combobox({ onSel ...

  3. cmd 窗口的复制粘贴

    如下几种方法1.点击鼠标右键,选择标志,再点击左键拖动选择要复制的内容,然后回车即可复制被 选择的内容 2.点击鼠标右键,选择标志,再点击左键拖动选择要复制的内容,然后点击鼠标右键, 此时就把选择的内 ...

  4. jquery roundabout幻灯片插件3d图片切换支持图片旋转切换滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. shell 1变量注意点

    定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样. 删除变量 使用 un ...

  6. Android2.2 API —— ImageView

    注意 请查看本文后期更新完整版: http://www.cnblogs.com/over140/archive/2011/06/08/2075054.html 来源: 农民伯伯: http://www ...

  7. centos7 systemctl grub2

    centos最小好化安装没有ifconfig命令 刚安装了centos7.0,最小化安装,发现没有ifconfig命令,虚拟机里面的网卡显示ens32,这是centos7.0的特点,要使用 ifcon ...

  8. 第三方:GDataXMLNode:xml解析库--备用

    一.GDataXMLNode说明   GDataXMLNode是Google提供的用于XML数据处理的类集.该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且 ...

  9. VC6.0中重载操作符函数无法访问类的私有成员

    整理日: 2015年03月18日 在 C++ 中,操作符(运算符)可以被重载以改写其实际操作.同时我们可以定义一个函数为类的朋友函数(friend function)以便使得这个函数能够访问类的私有成 ...

  10. SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆

    http://www.cnblogs.com/kissdodog/archive/2013/06/12/3132380.html