Linux&C – 精华Linux–QQ群: 490921612

php ip访问记录与限制

<?php
class LogIpTimes{
    public static $arrIpWhiteList=array(
          //google
          "66.249.75",
          "162.158.78.213",

          //microsoft
          "40.77.167",
          "157.55.39.120",

          //sogou
          "106.120.173.84",
    );

    public static $arrIpBlackList=array(
          //x.x.x
          "6.2.7.5",
    );

    public static function getip(){    
        $ip = '';    
        if(isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])){        
            $ip = $_SERVER[‘HTTP_X_FORWARDED_FOR’];    
        }elseif(isset($_SERVER[‘HTTP_CLIENT_IP’])){        
            $ip = $_SERVER[‘HTTP_CLIENT_IP’];    
        }else{        
            $ip = $_SERVER[‘REMOTE_ADDR’];    
        }
        $ip_arr = explode(',', $ip);
        return $ip_arr[0];
    }

    public static function logip()
    {
        $c=file_get_contents("logip.data");

        $ip=self::getip();
        $info=pathinfo($ip);
        $ip_net=$info[‘filename’];

        if(in_array($ip_net, $arrIpBlackList) || in_array($ip, $arrIpBlackList))
            die("非法访问!!!");

        if($ip=="127.0.0.1")
        {
            return;
        }

        if(preg_match('/^(\d{1,3}\.){3}\d{1,3}$/',$ip) == 0)
            die("invalid client");

        if(preg_match("/^$ip: (\d+)/sm",$c,$matches) == 1)
        {
            $count= (int)$matches[1]+1;
            if($count>200 && !in_array($ip_net,self::$arrIpWhiteList) && !in_array($ip,self::$arrIpWhiteList))
            {
                die("访问次数太多,请明天再来!!!");
            }
            $c=preg_replace("|^$ip: (\d+)|sm",$ip.": ".$count,$c);
            file_put_contents("logip.data", $c);
        }
        else
        {
            file_put_contents("logip.data",$ip.": 1\n", FILE_APPEND | LOCK_EX);
        }
        system("cp $root/logip.data /tmp/logip.data; cat /tmp/logip.data | sort -k2rn -k1r > $root/logip.data");
    }
}

LogIpTimes::logip();
 

.查看记录的IP
sort  -k2nr logip.data
106.120.173.84: 73
66.249.75.53: 62
66.249.75.51: 19
40.77.167.90: 13

 

PHP Cookie留在用户计算机中的小文件

<?php
// username 的cookie,其值为 xiaoli, cookie 将会在会话结束后(一般是浏览器关闭)失效
setcookie("username", "xiaoli");

//一个名称为 username 的cookie,其值为 xiaoli ,并在1小时候后过期
setcookie("username", "xiaoli", time()+3600);

//使用了 path 和 domain 参数,即在 5idev.com 域名的 / 路径下该 cookie 都有效(即全站有效)
setcookie("username", "xiaoli", time()+3600, "/", ".5idev.com");

//输出 xiaoli
echo $_COOKIE[“username”];    

if (isset($_COOKIE[“username”])) {
    echo "欢迎你: ".$_COOKIE[“username”];
} else {
    echo "请登陆";
}

// 销毁 cookie, 通过设置 cookie 过期时间为以前的时间点来销毁一个 cookie :
setcookie("username", "", time()-3600);
?>

php curl get post

function curl($url,$data="")
{
    $info=parse_url($url);
    $ch = curl_init();  
    curl_setopt( $ch, CURLOPT_URL, $url);  
    curl_setopt( $ch, CURLOPT_HEADER, true );  
    curl_setopt( $ch, CURLOPT_TIMEOUT, 60);  
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );  
    curl_setopt( $ch, CURLOPT_REFERER, $info[‘scheme’].”://”.$info[‘host’] );  
    curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" );  
    if(strlen($data)>0)
    {
        curl_setopt( $ch, CURLOPT_POST, true );  
        curl_setopt( $ch, CURLOPT_POSTFIELDS, $data);  
    }
    $contents = curl_exec( $ch );  
    curl_close($ch);  

    return $contents;
}

echo curl("http://www.baidu.com");
echo curl("http://www.baidu.com/?a=12");
echo curl("http://www.baidu.com", "a=12&b=12&c=13");

天然抗生素..蜂蜜加水..杀菌能力更强

少人知道蜂蜜是天然抗生素.

人造抗生素有很多不良副作用,譬如會大量殺害腸道中的益生菌,服用合理分量的蜂蜜對人體沒有任何害處(蜂蜜過敏者不適合)。

人造抗生素無法治療糖尿病引起的肢體潰爛,這種肉毒桿菌又叫食肉菌,顧名思義是非常惡的惡菌,只有外用蜂蜜可以有效控制食肉菌,可見其殺菌功效之大。

蜂蜜適當加溫水稀釋後殺菌功效增加一倍,蜜蜂餵食初生的BB也是用稀釋的蜂蜜(但人不可以用蜂蜜餵一歲以下小童)。

蜂蜜加水後產生過氧化氫(hydrogen peroxide又叫雙氧水),有強烈的殺菌作用,人造抗生素中則含有化學合成的過氧化氫。

蜂蜜水只需要7分鐘便進入血管,發揮抗菌消炎的作用,每天喝一、兩湯匙蜂蜜水很適合流感季節。現代西方醫學之父Hippocrates生活在公元前430年的希臘,他說:「你的食物就是你的藥。」他用兩種方法調製蜂蜜,一種是水,另一種是醋,但比較後還是認為加水調製的蜂蜜對治療傷口功效最好。世易時移,由於食物無法成為賺大錢的專利商品,現代的醫療體制不再推薦類似蜂蜜的食療。蜂皇漿同樣有很大的增加免疫力效果,但味道不是太好,有一個吃法:把蜂皇漿加在溫的蜂蜜水中攪勻,晨起空腹服用,這個方法還可以通便、消炎、修復受損組織。記得一定要選擇正貨,但這是個連國際名牌都造假的年代,為了放心,「食療主義」自己從歐洲找來了優質蜂蜜和冷藏運到的新鮮蜂皇漿。(蜂蜜不適合糖尿病引起的腎衰竭。糖尿病人只能適量服用蜂蜜,記住每一茶匙含約17卡路里。)