利用淘寶ip庫限制地區訪問

tty521發表於2017-05-14

https://sss.one/97.html


利用淘寶ip庫限制地區訪問

有些應用可能需要對某些地區的使用者進行限制訪問

在採用才此方法的時候,可以利用一些ip庫對訪問者的ip進行判斷

淘寶ip庫地址:淘寶ip庫

從而對相應地區的使用者進行對應的操作

下面的例項僅是限制了只能安徽省的使用者訪問

需要的使用者可以進行相應的修改


$verification = '安徽省';//需要遮蔽省份的IP  
 
$ip = $_SERVER['REMOTE_ADDR'];//獲取訪客IP  
 
$antecedents = $_SERVER['HTTP_REFERER'];//訪客來路地址  
 
$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//IP資料庫來自淘寶。  
 
$address = json_decode($result,true);  
 
//判斷訪客是否屬於XX省,是否來自百度,是否來自谷歌  
 
if($address['data']['region'] != $verification && strpos($antecedents, 'baidu') === false && strpos($antecedents, 'google') === false){  
 
echo "僅限安徽省使用者訪問";  
 
exit();  
 
}else{  
 
echo "<script>window.location.href='/';</script>";  
 
exit;  
 
}

原文來自:http://www.51mapleth.com/541.html

附文:從APNIC提取IP資訊

儲存成xx.sh的shell檔案


#!/bin/bash
 
# download from apnic
rm -f delegated-apnic-latest
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
 
# IPs allocated to china.
grep 'apnic|CN|ipv4|' delegated-apnic-latest | cut -f 4 -d'|' > delegated-apnic-CN
 
# get detail of echo IP from apnic database.
rm -f apnic_CN.txt
while read ip
do
# query apnic database
echo "query who is $ip"
whois -h whois.apnic.net $ip > tmp.txt
grep inetnum tmp.txt >> apnic_CN.txt # IP range
grep netname tmp.txt >> apnic_CN.txt # netname which include sp information 
grep descr tmp.txt >> apnic_CN.txt # description which include province information
echo "" >> apnic_CN.txt 
done < delegated-apnic-CN
 
# clean up
rm -f tmp.txt
rm -f delegated-apnic-latest
rm -f delegated-apnic-CN




相關文章