通过IP地址获取归属地的最简单的方法[转]

通过访客的IP地址,根据QQ的纯真IP库,通过封装库快速获取归属地信息。先把IPLocation.dll文件添加引用到你的项目,然后把qqwry.dat 文件放在合适的目录,我的放在App_Data里。很多朋友会问:“IP库的更新怎么办?”,这个好办..

1、===================================
首先得先下载两个文件;
IPLocation.dll[IP库操作封装],qqwry.dat[IP库文件]  这两个文件在示例源码里都可以找到。
通过访客的IP地址,根据QQ的纯真IP库,通过封装库快速获取归属地信息。

 关键操作:
先把IPLocation.dll文件添加引用到你的项目,然后把
qqwry.dat 文件放在合适的目录,我的放在App_Data里。
以下是调用:

 
  1. /// <summary>
  2. /// 根据IP地址 返回所在地区名称   我把该函数放在一个类文件里,方便随处调用
  3. /// </summary>
  4. /// <param name="strIP">IP地址</param>
  5. /// <param name="page">页面Page对象</param>
  6. /// <returns></returns>
  7. public static string GetNameByIP(string strIP, System.Web.UI.Page page)
  8.   {
  9.        string strName = "未知区域";
  10.          if (!string.IsNullOrEmpty(strIP))
  11.           {
  12.             try
  13.            {
  14.                string ConIPData = page.Server.MapPath("~/App_Data/qqwry.dat");
  15.                strName = IPLocation.IPLocation.IPLocate(ConIPData, strIP.Trim());
  16.            }
  17.            catch (Exception ex)
  18.            {
  19.                throw ex;
  20.            }
  21.        }
  22.        return strName.Trim();
  23.   }
/// <summary>        /// 根据IP地址 返回所在地区名称        /// </summary>        /// <param name="strIP"></param>        /// <param name="page"></param>        /// <returns></returns>        public static string GetNameByIP(string strIP, System.Web.UI.Page page)        {            string strName = "未知区域";            if (!string.IsNullOrEmpty(strIP))            {                try                {                    string ConIPData = page.Server.MapPath("~/App_Data/qqwry.dat");                    strName = IPLocation.IPLocation.IPLocate(ConIPData, strIP.Trim());                }                catch (Exception ex)                {                    throw ex;                }            }            return strName.Trim();        }        /// <summary>        /// 取得IP地址        /// </summary>        /// <returns></returns>        public static string GetIp()        {            string str = "";            //穿过代理服务器取远程用户真实IP地址:            if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)                str = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();            else                str = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();            return str;        }
 

该IP库文件有7M多之大,不知各位有没有办法给压缩下,望指教,谢谢。

示例源码:
点击下载
很多朋友会问:“IP库的更新怎么办?”,这个好办,下载以下软件,定期【腾讯5天一更新】更新IP库文件,上传到你的网站上覆盖即可。

IP库更新软件:点击下载

 

2、========================================

群里有朋友提供了一个更简便的方法:
调用腾讯的接口:
腾讯的ip接口地址:http://fw.qq.com/ipaddress

  请求这个接口会返回一个变量的声明 如:var IPData = new Array("120.1.85.112","","河北省","石家庄市");

调用的时候:<script type=text/javascript>document.write(IPData[3]);</script> 结果:石家庄市

 

原文:http://skinok.cn/ASPNET/78.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值