您的位置:程序门 -> web 开发 -> asp



根据ip判断用户地点,然后跳转到该地方网站首页。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


根据ip判断用户地点,然后跳转到该地方网站首页。
发表于:2007-02-01 00:01:02 楼主
请问高手们:
有谁能用asp编写出根据ip判断用户地点,然后跳转到该地方网站的代码吗?急!!!列如,如果ip是湖南省株洲市的,一进入主页就跳转到株洲的首页。
谢谢大家!
发表于:2007-02-01 09:05:401楼 得分:0
首先弄个ip库来,根据ip值算出对应地方.
在数据库表中设置一个表,对应地方与主页:)
跳转到相应地方主页就ok了.
发表于:2007-02-01 09:23:062楼 得分:0
谢谢,我已经去纯真网站上下载了ip数据库,但不知道怎么算客户的ip?愿提供原代码吗。我是新手,不胜感谢!
发表于:2007-02-01 11:35:143楼 得分:0
ip地址算法示例:
192.168.1.1
192*255^3+168*255^2+1*255^1+1*255^0
根据得出来的值在sql中查询在什么取值范围就可以得到归属地信息了.
发表于:2007-02-01 13:41:054楼 得分:0
纯真里面有很多大学,学院之类的最好能转成相对应的城市,比如:清华大学南校区学生宿舍6栋
发表于:2007-02-01 22:10:335楼 得分:0
谢谢各位大虾!可我还是没有解决好,搞了一下午了,怎么办呢???
数据库我已下载了纯真网的,并把它转成了sql数据库,但不知道该怎么去分析了。求助!!!
最关键的一点就是,取得客户真实ip后,怎么去跟自己的数据库比较?能有具体实现的代码吗?
发表于:2007-02-02 08:17:576楼 得分:0
呵呵,我已经找到解决的方法了,谢谢大虾!
程序思路是这样的,首先取得客户的真实ip地址。然后按“.“分离ip为四段,再把ip地址算法换算出来,建立数据库连接,然后用where   起址ip和结束ip段进行比较,然后就完全可以得出客户的所在地。
对了,我的数据库是用纯真网站下的,该网站五天更新一次,我还是很感谢他的。
有哪位高兴有更好的方法可以和我交流,我qq是359910518。
发表于:2007-02-02 09:02:527楼 得分:0
ip段的保存方式有2种
字符串和整形数值
建议使用整形   存储ip段的最小值和最大值
ip转换为整形值用
arrip=split(strip, ". ")
ipvalue=cint(arrip(0))^3+cint(arrip(1))^2+cint(arrip(2))^1+cint(arrip(0))^3
sql= "select   top   1   city   from   ip_mdb   where   "&ipvalue& "   between   minip   and   maxip "
发表于:2007-02-02 09:19:448楼 得分:0
function   getipvalue(clientip)
on   error   resume   next
dim   strip,   array_ip
strip=0
array_ip   =   split(clientip, ". ")
if   ubound(array_ip) <> 3   then
getipvalue=0
exit   function
end   if
for   i=0   to   3
strip=strip+(cint(array_ip(i))*(256^(3-i)))
next
getipvalue=strip
if   err   then   getipvalue=0
end   function
发表于:2007-02-02 10:04:369楼 得分:0
function   cacuip(ip1)
      on   error   resume   next
dim   srip,   aip
      srip=0
      aip   =   split(ip1, ". ")
if   ubound(aip) <> 3   then
cacuip=0
      exit   function
end   if
      for   i=0   to   3
      srip=srip+(cint(aip(i))*(256^(3-i)))
next
      cacuip=srip-1
if   err   then   cacuip=0
end   function  

function   ipdecode(byval   uip)
      if   trim(uip)= " "   or   not   isnumeric(uip)   then
              ipdecode=0
      else
              uip=cdbl(uip)
              dim   ary_ip(3)
              ary_ip(0)=fix(uip/16777216)
              ary_ip(1)=fix((uip-ary_ip(0)*16777216)/65536)
              ary_ip(2)=fix((uip-fix(uip/65536)*65536)/256)
              uip=uip-fix(uip/65536)*65536
              ary_ip(3)=fix(uip-fix(uip/256)*256)
              ipdecode=join(ary_ip, ". ")
      end   if
end   function
发表于:2007-02-02 10:37:5810楼 得分:0
请问楼主是在哪个网下的ip数据库哩?可否告知?谢谢啦!
发表于:2007-02-02 14:08:2411楼 得分:0
我在纯真网下的数据库,不过数据库要自己处理一下。
发表于:2007-02-02 14:12:3312楼 得分:0
你下的那个数据库是最新的吗?总共有多少条ip记录?
发表于:2007-02-02 14:25:1413楼 得分:0
最新的,有二十八万条


快速检索

热门点击