当前位置: 首页 > 图文教程 > 数据库 > Access > 根据IP跳转到用户所在城市的实现步骤

Access
教你快速掌握数据库查询优化的实用技巧
不同情况下修复Access数据库的实用方法
一个Access数据库数据传递的实例方法
讲解Access数据库中数据表的自动重新联接
巧用SQL链接服务器访问远程Access数据库
详细讲解Access数据库远程连接的实用方法
Access数据库下如何使用通用对话框的问题
解析:Perl下应当如何连接Access数据库
为什么Access数据库的精髓不在VBA之中
另类读写:ACCESS中Field对象的标题属性
逐步讲解向Access数据库上传且显示图片
Perl下应当如何连接Access数据库
Access 2007简易入门手册
ACCESS复合承载 性能超越MYSQL
使用ACCESS做网络版程序的四种解决方案
ASP压缩ACCESS数据库实例
Access完成累计余额的计算
asp如何和access数据库连接?
将Access升级为SQL Server 2005
在ACCESS中调用后台存储过程

Access 中的 根据IP跳转到用户所在城市的实现步骤


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 276 ::
收藏到网摘: n/a

根据IP跳转到用户所在城市自动识别IP,并跳转到来访问者所在的城市 先去下一个最新的纯真IP数据库,然后按如下操作:
1.运行纯真QQIP数据库里带的ShowIP.exe,点解压,输入文件名,比如IP.txt,确定,就得到一个TXT文件。
2.打开ACCESS,工具-自定义,命令选项卡,把导入选项拖动到上面的工具栏。
3.建库,建一个表,四个字段
Startip 类型:文本 (相关城市的IP段信息)
Endip 类型:文本 (相关城市的IP段信息)
Country 类型:文本 (相关城市名称)
ReUrl 类型:文本 (你想要跳转的城市路径如:北京 http://bj.abc.com)
4.点导入按钮,文件类型选文本文件,找到刚才导出的IP.txt文件,导入到刚才建的表里~
运算将真实IP转换为数字,比如北京的IP段是 : 1.1.0.0 -- 1.1.0.255
Startip: 1*256*256*256+1*256*256+0*256+0 = 16842752 (这个数字才是最终要放到数据库里)
Endip: 1*256*256*256+1*256*256+0*256+255 = 16843007 (这个数字才是最终要放到数据库里的)
可用程序批量处理,如果不会,而且没时间(像我一样)你就直接去下个动网的IP库,它是已经处理好了的,下面是程序部分:
user_ip = Request.ServerVariables("REMOTE_ADDR") ''取得访问者IP
userip_ary=split(user_ip,".")
tmp_userip=userip_ary(0)*256*256*256+userip_ary(1)*256*256+userip_ary(2)*256+userip_ary(3) '' 按规定转换IP为数字
‘从数据库找出用户IP属于的城市
set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from ip where Startip<="&tmp_userip&" and Endip>="&tmp_userip
rs.open sql,conn,1,1
if rs.eof then
response.redirect "index.asp" '如果没有该城市或是IP无法识别则转到首页,也可以指定页面
else
response.redirect rs("ReUrl") '如果有转到指定页面
end if
rs.close
set rs=nothing
将上面的程序放到你的虚拟主机默认访问首页里!或是其它的页面里(当然你同样要在虚拟主机控制面板里设置默认首先访问的是这个文件) OK