若相依 发表于 2015-2-4 00:07:25

PHP教程之利用MaxMind 依据IP地址对会见者定位

《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)   有时你需求晓得你的站点会见者来自哪一个国度――好比假如你正盘算履行针对地舆区域的告白企图。本文将对此办法停止引见。    有时你需求晓得你的站点会见者来自哪一个国度――好比假如你正盘算履行针对地舆区域的告白企图。这恰是象MaxMind's GeoIP一类的东西大显神通的中央――它可让你从会见者的IP地址轻松获得其切实的地舆地位信息。
    MaxMind供应了贸易数据库和收费数据库。前者更加准确,精度可以达利用者地点城市信息一级,尔后者则只能肯定国度和区域。在本文中,咱们将演示收费版的利用办法。假如你需求更多具体信息,好比近程客户的城市和国度信息,你需求从MaxMind:http://www.maxmind.com购置更具体的数据库。
    起步
    要利用此软件,你必需起首下载GeoIP收费国度信息文件:http://www.maxmind.com/app/geoip_country 并将其寄存于Web办事器的某个目次中。然后你需求选择数据库文件所利用的言语API。为简化全部进程,咱们将利用地道的PHP版本以免其他额定的设置装备摆设或设置Apache组件。请记住在装置软件到Web站点前浏览软件允许证条目:http://www.maxmind.com/download/geoip/database/LICENSE.txt以确保你赞同这些条目。
代码列表A
<?php
// include functions
include("geoip.inc");
// read GeoIP database
$handle = geoip_open("GeoIP.dat", GEOIP_STANDARD);
// map IP to country
echo "IP address 62.149.130.132 located in " . geoip_country_name_by_addr($handle, "62.149.130.132") . " (country code " . geoip_country_code_by_addr($handle, "62.149.130.132") . ")";
// close database handler
// www.knowsky.com
geoip_close($handle);
// print compulsory license notice
echo "<p> -- This product includes GeoIP data created by MaxMind, available from http://maxmind.com/ --";
?>
列表A中的代码显示了利用模块(geoip.inc)以会见GeoIP收费国度信息数据库(GeoIP.dat)的根基办法。示例假定PHP include和国度家信息数据库文件都在与PHP文件自己不异的目次中。假如示例与你的装置分歧,则需求依据需求改动途径。
示例代码相当了然,在引入GeoIP PHP函数库后,第一步即便用geoip_open()函数翻开GeoIP数据库文件。此函数吸收两个参数:数据库文件途径和数据库类型。
咱们然后利用由挪用geoip_open()前往的句柄,由此依据所给的IP地址以获得两字母的国度代码及直不雅的国度称号。个中还要分离借助函数geoip_country_code_by_addr()和geoip_country_code_by_name()。两者都吸收两个参数:由geoip_open()前往的句柄和需求解析的IP地址。
一旦取得所需信息,咱们经由过程挪用geoip_close()封闭数据库文件。
所做的就是这么复杂。
到现在,对排版还是不很熟练,经常会排不好。

乐观 发表于 2015-2-4 08:59:44

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

莫相离 发表于 2015-2-4 11:26:28

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

兰色精灵 发表于 2015-2-6 22:06:13

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

深爱那片海 发表于 2015-2-8 21:43:51

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

谁可相欹 发表于 2015-2-26 11:14:50

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

活着的死人 发表于 2015-3-8 14:02:02

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

再现理想 发表于 2015-3-16 00:12:06

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

飘飘悠悠 发表于 2015-3-20 02:53:50

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

愤怒的大鸟 发表于 2015-4-1 01:36:15

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

小女巫 发表于 2015-4-7 01:15:13

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

飘灵儿 发表于 2015-4-30 21:42:37

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

精灵巫婆 发表于 2015-5-6 20:12:12

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

再见西城 发表于 2015-6-19 17:51:07

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

透明 发表于 2015-7-12 07:25:32

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

柔情似水 发表于 2015-7-13 06:21:42

做为1门年轻的语言,php一直很努力。

仓酷云 发表于 2015-7-13 19:21:52

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

只想知道 发表于 2015-7-14 02:35:25

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

爱飞 发表于 2015-7-25 01:38:11

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
页: [1]
查看完整版本: PHP教程之利用MaxMind 依据IP地址对会见者定位