这是一个 IP2Location Apache 模块,使用户能够查找国家、地区或州、地区、城市、纬度和经度、邮政编码、时区、互联网服务提供商 (ISP) 或公司名称、域名、网速、区号、气象站代码、气象站名称、移动国家代码 (MCC)、移动网络代码 (MNC) 和运营商品牌、海拔、使用类型、地址类型、IAB 类别和 ASN 以及按 IP 地址或主机名划分的类别源自。该库从IP2Location BIN 数据文件中读取地理位置信息。
支持 IPv4 和 IPv6 地址。
欲了解更多详情,请访问:https://www.ip2location.com/developers/apache
创建一个名为 ip2location 的新文件夹。
在 Debian 中安装开发库。
apt install apache2-dev
从此处下载 IP2Location C 库到 ip2location 文件夹中。
解压缩 C 库。
unzip master.zip && rm master.zip
进入工作目录。
cd IP2Location-C-Library-master
编译并安装IP2Location-C-Library。
autoreconf -i -v --force
./configure
make
make install
注意:如果需要,您可能需要运行ldconfig
来刷新共享库。
将 IP2Location Apache 模块下载到 ip2location 文件夹中。
解压 IP2Location Apache 模块
unzip master.zip && rm master.zip
进入 IP2Location Apache 模块目录。
cd ip2location-apache-master
编译 IP2Location Apache 模块。
apxs2 -i -a -L ../IP2Location-C-Library-master/libIP2Location/ -I ../IP2Location-C-Library-master/libIP2Location/ -l IP2Location -c mod_ip2location.c
apache2ctl -M
<IfModule mod_ip2location.c>
IP2LocationEnable On
IP2LocationDetectProxy <On|Off>
IP2LocationSetmode ALL
IP2LocationDBFile <ip2location_binary_db_file_with_fully_qualified_path>
</IfModule>
创建一个名为 ip2location 的新文件夹。
从此处下载 IP2Location C 库到 ip2location 文件夹中。
使用7-zip或其他压缩工具解压缩C库。
进入工作目录。
cd IP2Location-C-Library-master
开始编译。
nmake /f Makefile.win
下载 Apache 模块并将其解压到 ip2location 文件夹中。
导航到 ip2location-apache-master 文件夹。
编辑 Makefile.win 以更改 C 库的路径。
IP2LOCATION_CSRC_PATH = C:/ip2location/IP2Location-C-Library-master/libIP2Location
IP2LOCATION_CLIB_PATH = C:/ip2location/IP2Location-C-Library-master/libIP2Location
APACHE_INSTALL_PATH = "C:/Program Files/Apache Software Foundation/Apachex.x"
开始编译。
nmake /f Makefile.win
将生成的 IP2Location_apache.dll 复制到 Apache 模块目录。
将以下行添加到 httpd.conf 中
<IfModule mod_ip2location.c>
IP2LocationEnable <ON|OFF>
IP2LocationDetectProxy <ON|OFF>
IP2LocationSetmode ALL
IP2LocationDBFile <ip2location_binary_db_file_with_fully_qualified_path>
</IfModule>
要在 Apache 中加载 IP2Location 模块,请在 httpd.conf 中添加以下行。
LoadModule IP2Location_module FULL_PATH_TO_IP2LOCATION_MODULE
<IfModule mod_ip2location.c>
IP2LocationEnable On
# ENV will set server variables
# NOTES will set apache notes
# ALL will set both
IP2LocationSetmode ALL
IP2LocationDBFile PATH_TO_IP2LOCATION_BIN_DATABASE
IP2LocationDetectProxy On
</IfModule>
参考:
姓名 | 价值 | 描述 |
---|---|---|
IP2位置启用 | 开|关 | 启用或禁用 IP2Location 模块。 |
IP2位置设置模式 | 环境|注释|全部 | 选择显示地理位置变量的位置。 ENV = 服务器变量,NOTES = Apache 注释,ALL = 两者 |
IP2位置数据库文件 | 小路 | IP2Location BIN 数据库的完整路径 |
IP2位置检测代理 | 开|关 | 如果您的网站托管在反向代理服务器后面,请打开此功能以检测正确的 IP 地址 |
重新启动 Apache 服务器以使更改生效
注意如果您遇到启动错误,其中 Apache 无法找到模块文件,请按如下所示设置您的环境路径:
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/apache2/modules/
$ export LD_LIBRARY_PATH
从互联网浏览器加载 mod_ip2location_test.php
将以下行添加到您的域配置文件(apaches/sites-enabled)或 .htaccess:
RewriteEngine On
RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^US$
RewriteRule ^(.*)$ https://www.google.com [L]
这会将所有 IP 地址从美国重定向到 https://www.google.com
电子邮件:[email protected]。
网址:https://www.ip2location.com