该项目已测试完成,已上线:zph.zptong.com
先说说项目遇到的几个问题:
1.获取全国客户端ip、
在网上买了一个全国最新的ip表,里面几十万条数据,然后程序里获取客户端ip,在和数据库里ip表进行比对。
1 /// <summary> 2 /// 获得当前页面客户端的IP 3 /// </summary> 4 /// <returns>当前页面客户端的IP</returns> 5 public string GetIP() 6 { 7 string result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; //先取REMOTE_ADDR 8 if (string.IsNullOrEmpty(result)) 9 { 10 result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; //如果REMOTE_ADDR取不到,在取HTTP_X_FORWARDED_FOR 11 } 12 if (string.IsNullOrEmpty(result)) 13 { 14 result = HttpContext.Current.Request.UserHostAddress; //如果HTTP_X_FORWARDED_FOR在取不到,就取UserHostAddress 15 } 16 if (string.IsNullOrEmpty(result)) //如果在取不到就放弃 17 { 18 return "127.0.0.1"; 19 } 20 return result; 21 }
数据库查询获取到的ip
1 //获得客户端ip地址 2 string strIP = GetIP(); 3 string sql = "declare @ipaddress bigint=dbo.fnIP2Int(@ip)"; 4 sql += "SELECT TOP 1 * FROM [IPData] WHERE @ipaddress>=iBeginIP AND @ipaddress<=iEndIP";
2.