PHP禁止IP访问(不过滤搜索引擎蜘蛛)的方法
时间:2021-07-01 10:21:17
帮助过:33人阅读
/** - * 屏蔽指定的IP地址访问,但不屏蔽搜索引擎的蜘蛛
- * by bbs.it-home.org
- */
- function get_ip_data(){
- $ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip());
- $ip = json_decode($ip);
- if($ip->code){
- return false;
- }
$data = (array) $ip->data; - if($data['region']=='湖北省' && !isCrawler()){
- exit('http://bbs.it-home.org');
- }
- }
- function isCrawler() {
- $spiderSite= array(
- "TencentTraveler",
- "Baiduspider+",
- "BaiduGame",
- "Googlebot",
- "msnbot",
- "Sosospider+",
- "Sogou web spider",
- "ia_archiver",
- "Yahoo! Slurp",
- "YoudaoBot",
- "Yahoo Slurp",
- "MSNBot",
- "Sogou Spider",
- "Speedy Spider",
- "Google AdSense",
- "Heritrix",
- "Fish search",
- );
if(in_array(strtolower($_SERVER['HTTP_USER_AGENT']),$spiderSite)){ - return true;
- }else{
- return false;
- }
- }
- //获取客户端的IP地址
- function get_client_ip()
- {
- if (isset($_SERVER)){
- if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
- $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
- } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
- $realip = $_SERVER["HTTP_CLIENT_IP"];
- } else {
- $realip = $_SERVER["REMOTE_ADDR"];
- }
- } else {
- if (getenv("HTTP_X_FORWARDED_FOR")){
- $realip = getenv("HTTP_X_FORWARDED_FOR");
- } else if (getenv("HTTP_CLIENT_IP")) {
- $realip = getenv("HTTP_CLIENT_IP");
- } else {
- $realip = getenv("REMOTE_ADDR");
- }
- }
- return $realip;
- }
|