php使用geoip通過用戶ip獲取信息



下載 GeoIP 的 PHP 文件geoip.inc


http://sjolzy.cn/php/GeoIP/bak/geoip.inc


下載GeoIp 的數據庫文件Geoip.dat

 

https://sjolzy.cn/php/GeoIP/bak/GeoIP.dat.gz

 

php使用代碼

限制某個地區ip訪問可以使用地區編號進行判斷。

<?php
// 引入 PHP 庫文件
include ("geoip.inc");
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
// 獲取國家編號
$countryCode=geoip_country_code_by_addr($geoData,$_SERVER['REMOTE_ADDR']);
// 獲取國家名稱
$countryName =geoip_country_name_by_addr($geoData,$_SERVER['REMOTE_ADDR']);
// 關閉本地數據庫
geoip_close($geoData);
//判斷用戶是否是來自新西蘭編號NZ,或澳洲編號AU
if ($countryCode=="NZ" ||$countryCode=="AU") {
    exit();
}

 

獲取用戶相對比較真實的ip

<?php 
//引入 PHP 庫文件
include ('geoip.inc.php'); // 封裝getIP來獲取用戶真實IP function getIp(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])) { $cip = $_SERVER["HTTP_CLIENT_IP"]; } else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if(!empty($_SERVER["REMOTE_ADDR"])) { $cip = $_SERVER["REMOTE_ADDR"]; } else { $cip = ''; } preg_match("/[\d\.]{7,15}/", $cip, $cips); $cip = isset($cips[0]) ? $cips[0] : 'unknown'; unset($cips); return $cip; } $ip=getIp();
$geoData = geoip_open('geoip.dat', "GEOIP_STANDARD"); // 獲取國家 IP $countryCode=geoip_country_code_by_addr($geoData,$ip); // 獲取國家名稱 $countryName =geoip_country_name_by_addr($geoData,$ip); // 關閉本地數據庫 geoip_close($geoData); //判斷用戶是否是來自新西蘭編號NZ,或澳洲編號AU if ($countryCode=="NZ" ||$countryCode=="AU") { exit(); }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM