当前位置:首页 » 编程语言 » geoipphp

geoipphp

发布时间: 2022-10-22 22:05:59

php判断IP地址

这个PHP本身没有办法。是需要用PHP查数据库

目前常有的免费IP库,是结真IP库

❷ php怎么获取goaccess生成的报告内容

1、安装GoAccess需要一些系统支持库

yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel

如果yum库找不到Geo-IP 那么需要单独安装了.
# cd /usr/local/src
# wget wget http://sourceforge.net/projects/goaccess/files/0.5/goaccess-0.5.tar.gz/download
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

安装GeoIP库

# tar xzvf GeoIP-1.4.6.tar.gz
# cd GeoIP-1.4.6
# ./configure && make && make install

# mv GeoIP.dat.gz /usr/local/share/GeoIP/

安装goaccess

# tar xzvf goaccess-0.5.tar.gz
# cd goaccess-0.5
# ./configure --enable-geoip --enable-utf8 && make && make install

启动参数介绍:

-b 流量消耗统计,如果想要提高解析速度,不要开启这个选项。缺省值为不开启此选项
-f 日志文件路径。
-s HTTP 状态码报告,为了能够更好的解析日志,选项被默认关闭。
-e 指定IP地址的访问统计。
-a 通过代理的请求统计。

❸ 网站建设:如何通过IP区分不同国家的用户

这是为了让不同的国度和习惯的访客看到不一样的信息, 避免误导用户产生多余的交互行为或者因为页面的不合理而感到不爽.上图是最近我在顶部放置的广告 banner. 上方红色的是某网站圣诞节促销活动的Affiliate 广告, 中国大陆之外地区的访客可以看到; 下方蓝色的是最新发布的与我同行 Apply App 应用广告, 只有中国大陆地区的访客可以看到. 区分访客国家有什么用?这里是几个我利用该功能的例子.区分网站功能 这个博客有翻译文章的功能, 这是为了方便海外访客阅读文章, 但对中国人显得十分多余. 所以我通过 IP 判断国家, 对中国大陆地区屏蔽翻译功能.区分展示广告 我在网站侧边栏放有广告, 很多中文广告对海外流量来说毫无意义, 所以我进行区分展示. 中国大陆地区在侧边栏最下方看到的是拿福能的广告, 而其他地区看到的是 Google 的广告. hostucan 是我的一个广告主, 有英文网站, 也有中文网站, 所以我可以向他提供区分展示服务, 免得浪费流量.屏蔽布点服务 海外有很多好的服务平台, 在网站上布点即可采集数据和分享文章. 但很不幸, 因为某些原因, 他们在国内展示效果并不好, 不但没有起到应有效果, 还让页面加载时间变长. 可以对大陆访客屏蔽这些布点.在PHP 通过 IP 区分国家如何用 PHP 通过 IP 区分国家和地区呢? Maxmind.com 提供一套 GeoIP 的解决方案, 只需要简单几步即可在 PHP 中通过 IP 判断访客的国家.1. 下载数据库和 PHP 库文件下载GeoID.dat.gz, 解压为 GeoIP.dat 文件.下载geoip.inc.2. 通过 PHP 代码获取国家信息 以下是一段示范代码, 演示如何获取国家代号和国家名称.<?php // 引入 PHP 库文件include("geoip.inc"); // 打开本地数据库, 数据保存在 GeoIP 文件中.$geoData= geoip_open('GeoIP.dat', GEOIP_STANDARD); // 获取国家 IP$countryCode= geoip_country_code_by_addr($geoData,$_SERVER['REMOTE_ADDR']); // 获取国家名称$countryName= geoip_country_name_by_addr($geoData,$_SERVER['REMOTE_ADDR']); // 关闭本地数据库 geoip_close($geoData); ?>在WordPress 中通过 IP 区分国家既然PHP 上使用没问题, WordPress 肯定也是 Okay 的. 看看我是怎么使用的.1. 放置数据库文件 将GeoIP.dat 解压到 WordPress 根目录中. (你可以在这个目录找到 wp-content.php 文件)2. 编写调用接口 在主题目录中新建文件夹 include, 将 geoip.inc 放置在新建文件夹中. 并在该文件夹新建文件 geoip.php 文件内容如下.<?php include('geoip.inc'); global$countryCode; $geoData= geoip_open('GeoIP.dat', GEOIP_STANDARD);$countryCode= geoip_country_code_by_addr($geoData,$_SERVER['REMOTE_ADDR']); geoip_close($geoData); ?>这里只取国家代号作为判别依据. 并且国家代号是全局变量, 以避免页面多处判断需要反复访问 GeoIP.dat 获取信息, 减少程序开销.2. 调用接口, 获取国家代号 3. 打开 header.php 文件, 在文件顶部加入代码如下.<?phpinclude('include/geoip.php');?>4. 使用国家代号 在主题中调用代码, 例子如下.<?

❹ 怎么用geoip屏蔽日本访客,php的形式来判断。我找到个代码,但它是允许日本的,怎么改成禁止日本

$country=='jp'修改为
$country != 'jp'
好了,就这么简单~

❺ centos6.5 怎么安装GeoIP PECL扩展

安装GEOIP

[root@i -it ~]# yum install GeoIP GeoIP-deve

##下载GeoIP的数据库,有精确到国家和地区包括IPv6 自行选择...###

[root@i -it ~]# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

[root@i -it ~]# tar zxf GeoLiteCity.dat.gz

[root@i -it ~]# mv GeoIPCity.dat /data/seo/misc/GeoIPCity.dat

##下载GeoIP PECL扩展##

[root@i -it ~]# wget http://pecl.php.net/get/geoip-1.0.8.tg

##安装##

[root@i-it ~]# tar zxf geoip-1.0.8.tgz

[root@i-it ~]# cd geoip-1.0.8

[root@i-it geoip-1.0.8]# /software/php/bin/phpize

[root@i-it geoip-1.0.8]# ./configure --with-php-config=/software/php/bin/php-config --with-geoip

[root@i-it geoip-1.0.8]# make && make install

###修改PHP配置文件###

[root@i-it seo]# vi /software/php/etc/php.ini

extension = "geoip.so"

###指定geoip数据的路径##

geoip.custom_directory=/data/seo/misc/

❻ 如何在Linux上按国别阻止网络流量

作为一名维护生产环境Linux服务器的系统管理员,在有些情况下,你需要根据地理位置,有选择性地阻止或允许网络流量。比如说,你遇到了拒绝服务攻击,这些攻击主要源自在某一个国家注册的IP地址。在其他情况下,出于安全方面的原因,你又想要阻止外国来历不明SSH登录请求;或者贵公司对在线视频拥有发行权,因而只可以分发给某些国家;或者由于地域限制方面的公司政策,你需要防止本地主机将文档上传到非美国远程云存储系统。

所有这些场景都需要能够安装一个防火墙,可以按国别对流量进行过滤。有几种方法可以做到这一点。举例说,你可以使用TCP包装器(TCP wrapper),针对个别应用程序(比如SSH、NFS和httpd)设置有条件的阻止。其缺点是,你想要保护的那个应用程序在开发当初必须支持TCP包装器。此外,TCP包装器并非普遍出现在不同的平台上(比如说,Arch Linux已停止对TCP包装器的支持)。另一种办法就是,利用基于国家的GeoIP信息来设置ipset,然后将它运用于iptables规则。后一种方法更有希望,因为基于iptables的过滤与应用程序无关,而且易于设置。
我在本教程中将介绍另一种基于iptables的GeoIP过滤机制,这种机制实施了xtables-addons。有些读者对它还不熟悉,所以有必要先介绍一下,xtables-addons是一套面向netfilter/iptables的扩展。xtables-addons内含了一个名为xt_geoip的模块,该模块扩展了netfilter/iptables的功能,可以根据来源/目的地国家,过滤、NAT或管理数据包。如果你想使用xt_geoip,不需要重新编译内核或iptables,只需要构建xtables-addons模块,并使用当前的内核构建环境(/lib/moles/`uname -r`/build)。也不需要重启。一旦你构建并安装好了xtables-addons,xt_geoip立即就可以与iptables结合使用。
至于xt_geoip和ipset之间的区别,官方来源(http://xtables-addons.sourceforge.net/geoip.php)提到,xt_geoip在内存占用空间方面少于ipset。不过在匹配速度方面,基于散列的ipset可能具有优势。
在本教程其余部分,我会演示如何使用iptables/xt_geoip,根据来源/目的地国家,阻止网络流量。
将Xtables-addons安装到Linux上
下面介绍如何编译xtables-addons,并将它安装到不同的Linux平台上。
想构建xtables-addons,你就需要先安装几个依赖程序包。
·将依赖程序包安装到Debian、Ubuntu或Linux Mint上
$ sudo apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config

·将依赖程序包安装到CentOS、RHEL或Fedora上
CentOS/RHEL 6需要先安装EPEL软件库(面向perl-Text-CSV_XS)。
$ sudo yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS

编译和安装Xtables-addons
从官方网站(http://xtables-addons.sourceforge.net)下载最新的xtables-addons源代码,然后构建/安装它,如下所示。
$wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons
-2.10.tar.xz
$ tar xf xtables-addons-2.10.tar.xz
$ cd xtables-addons-2.10
$ ./configure
$ make
$ sudo make install

请注意:如果是默认情况下已启用SELinux的基于红帽的系统(CentOS、RHEL、Fedora),有必要调整SELinux策略,如下所示。要不然,SELinux会阻止iptables装入xt_geoip模块。
$ sudo chcon -vR --user=system_u /lib/moles/$(uname -r)/extra/*.ko
$ sudo chcon -vR --type=lib_t /lib64/xtables/*.so

为Xtables-addons安装GeoIP数据库
下一步是安装GeoIP数据库,xt_geoip将用到该数据库,用于IP与国别映射。很方便的是,xtables-addons源程序包随带两个帮助脚本,可分别用来从MaxMind下载GeoIP数据库,并将它转换成xt_geoip可识别的二进制格式。这些脚本位于源程序包里面的geoip文件夹下面。按照下列说明,即可构建GeoIP数据库,并将它安装到你系统上。
$ cd geoip
$ ./xt_geoip_dl
$ ./xt_geoip_build GeoIPCountryWhois.csv
$ sudo mkdir -p /usr/share/xt_geoip
$ sudo cp -r {BE,LE} /usr/share/xt_geoip

据MaxMind声称,其GeoIP数据库的准确性达到99.8%,数据库更每月都更新。为了确保本地安装的GeoIP数据库内容最新,你就需要设置每月执行的计划任务,以便每月更新一次本地GeoIP数据库。
阻止来自或发往某个国家的网络流量
一旦xt_geoip模块和GeoIP数据库都已安装好,你就可以立即使用iptables命令中的geoip匹配选项。
$ sudo iptables -m geoip --src-cc country[,country...] --dst-cc country[,country...]

你想要阻止的国家使用两个字母ISO3166代码来指定,比如说US(美国)、CN(中国)、IN(印度)和FR(法国)。
比如说,如果你想阻止来自也门(YE)和赞比亚(ZM)的入站流量,下面这个iptables命令就能实现。
$ sudo iptables -I INPUT -m geoip --src-cc YE,ZM -j DROP

如果你想阻止发往中国(CN)的出站流量,只要运行下面这个命令。
$ sudo iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

匹配条件也可以被“抵消”,只要将“!”放在“--src-cc”或“--dst-cc”的前面。比如说:
如果你想在服务器上阻止所有非美国的入站流量,可以运行这个命令:
$ sudo iptables -I INPUT -m geoip ! --src-cc US -j DROP

针对Firewall-cmd用户
像CentOS/RHEL 7或Fedora这一些发行版已将iptables换成firewalld,作为默认防火墙服务器。在这类系统上,你同样可以利用xt_geoip,使用firewall-cmd阻止流量。上面三个例子可以用firewall-cmd来改写,如下所示。
$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc YE,ZM -j DROP
$ sudo firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc CN -j DROP
$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc US -j DROP

结束语
我在本教程中介绍了iptables/xt_geoip,这是一种简单方法,可以根据来源/目的地国家,对网络数据包进行过滤。如果需要的话,可以将这件有用的武器部署到你的防火墙系统中。最后提醒一句,我应该提到:基于GeoIP的流量过滤并不是在你服务器上阻止某些国家的万无一失的方法。GeoIP数据库天生就不准确/不完整,如果使用VPN、Tor或任何受到危及的中继主机,就很容易欺骗来源/目的地国家。基于地域的过滤甚至会阻止本不该被禁止的合法流量。明白这个局限性后,再决定将它部署到你的生产环境中也不迟。

❼ 求geoip的C语言和PHP所有库函数。

1、首先标准只是规定了这些函数的接口和具体的运行效率的要求,这些函数具体是怎么写得要看各个编译器的实现和平台。
2、例如使用的编译器是visual studio,微软提供了一部分C运行时(CRT)的源码,里面会有memcpy,strcpy之类的函数的实现,在visual studio 2005下的路径是C:\Program Files\Microsoft Visual Studio 8\VC\crt\src。

热点内容
办一个论坛需要租什么样的服务器 发布:2024-12-29 14:44:21 浏览:961
java开闭原则 发布:2024-12-29 14:43:36 浏览:919
多端数据统一存储 发布:2024-12-29 14:41:16 浏览:93
如何破解蓝奏云下载密码 发布:2024-12-29 14:40:08 浏览:742
9500h如何查安卓版本 发布:2024-12-29 14:39:15 浏览:805
如何不使用信用卡支付密码 发布:2024-12-29 14:30:36 浏览:200
安卓手机如何到数据到新手机 发布:2024-12-29 14:29:58 浏览:963
linux卸载虚拟机 发布:2024-12-29 14:29:48 浏览:41
乐视手机配置为什么这么便宜 发布:2024-12-29 14:19:05 浏览:696
androidicon生成 发布:2024-12-29 14:11:47 浏览:938