亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php頻率限制類的用法示例

2020-03-22 19:48:56
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于php頻率限制類的用法示例,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

比如:

實現單個ip限制60秒1次

單個關鍵字,比如手機號,限制60秒1次,3600秒10次

 ?phphtml' target='_blank'>class Sina_Mail_WebAntispam { const PREFIX_WHITELIST = w:  const PREFIX_KILL = k:  const PREFIX_VERIFYCODE = c:  const PREFIX_VERIFIED = v:  const STATUS_UPDATE = [U]  private $mc = null; private $config = null; private $whitelist = array(); private $keyPrefix =  private $intervals = array(); private $updates = array(); private $status = array(); public function __construct($mc, $config) { $this- mc = $mc; $this- config = $config; if (isset($this- config- prefix)) { $this- keyPrefix = $this- config- prefix; if (isset($this- config- whitelistKey)) { $wls = $this- mc- get($this- config- whitelistKey); if (!empty($wls)) { $this- whitelist = $wls; public function setWhitelist( $whitelist) { $this- whitelist = $whitelist; /*驗證限制規則*/ public function check($ip = null, $key = null) { if (!$ip !$key) { return false; if ($key) { if (!is_array($key)) { $keys = array($key); } else { $keys = $key; // first filter by whitelist if (!empty($this- whitelist)) { if ($ip $this- filterByWhitelist($ip, ip )) { $this- status[self::PREFIX_WHITELIST . $ip] = 1; return true; if ($keys) { foreach ($keys as $key) { if ($this- filterByWhitelist($key, key )) { $this- status[self::PREFIX_WHITELIST . $key] = 1; return true; if ($ip) { $ip = $this- keyPrefix . $ip; // second, check verified ok if (!empty($this- config- verified)) { if ($ip $this- mc- get(self::PREFIX_VERIFIED . $ip)) { $this- status[self::PREFIX_VERIFIED . $ip] = 1; return true; if ($keys) { foreach ($keys as $key) { $verifiedKey = self::PREFIX_VERIFIED . $this- keyPrefix . $key; if ($this- mc- get($verifiedKey)) { $this- status[$verifiedKey] = 1; return true; $kos = !empty($this- config- kill); // check killed if ($kos) { if ($ip $this- mc- get(self::PREFIX_KILL . $ip)) { $this- status[self::PREFIX_KILL . $ip] = 1; return false; if ($keys) { foreach ($keys as $key) { $killKey = self::PREFIX_KILL . $this- keyPrefix . $key; if ($this- mc- get($killKey)) { $this- status[$killKey] = 1; return false; // check ip rule if ($ip isset($this- config- ip)) { if (!$this- checkRule($ip, $this- config- ip)) { if ($kos $this- mc- set(self::PREFIX_KILL . $ip, 1, intval($this- config- kill))) { $this- status[self::PREFIX_KILL . $ip] = 1; return false; // check keys rule if ($keys isset($this- config- key)) { foreach ($keys as $key) { if (!$this- checkRule($this- keyPrefix . $key, $this- config- key)) { $killKey = self::PREFIX_KILL . $this- keyPrefix . $key; if ($kos $this- mc- set($killKey, 1, intval($this- config- kill))) { $this- status[$killKey] = 1; return false; return true; /*更新限制規則*/ public function update($c = 1, $ip = null, $key = null) { if (is_null($ip) is_null($key)) { if (!empty($this- updates)) { foreach ($this- updates as $k = $v) { if (!$v isset($this- intervals[$k])) { if ($this- mc- add($k, $c, false,$this- intervals[$k])) { $this- status[self::STATUS_UPDATE . $k] = $c; continue; $r = $this- mc- increment($k, $c); $this- status[self::STATUS_UPDATE . $k] = $r; } else { if (!is_null($ip) isset($this- config- ip)) { $rule = $this- config-  foreach ($rule as $interval = $limit) { $k = $this- keyPrefix . $ip . _ . $interval; if ($this- mc- add($k, $c,false,$interval)) { $this- status[self::STATUS_UPDATE . $k] = true; continue; $r = $this- mc- increment($k, $c); $this- status[self::STATUS_UPDATE . $k] = $r; if (!is_null($key) isset($this- config- key)) { $rule = $this- config-  if (!is_array($key)) { $keys = array($key); } else { $keys = $key; foreach ($keys as $key) { foreach ($rule as $interval = $limit) { $k = $this- keyPrefix . $key . _ . $interval; if ($this- mc- add($k, $c,false,$interval)) { $this- status[self::STATUS_UPDATE . $k] = true; continue; $r = $this- mc- increment($k, $c); $this- status[self::STATUS_UPDATE . $k] = $r; public function checkVerifyCode($key, $code) { $servcode = $this- mc- get(self::PREFIX_VERIFYCODE . $this- keyPrefix . $key); if (strcasecmp($servcode, $code) == 0) { $verified = intval($this- config- verified); if ($verified 0) { $r = $this- mc- set(self::PREFIX_VERIFIED . $this- keyPrefix . $key, 1, false, $verified); } else { $r = true; if ($r) { $this- mc- delete(self::PREFIX_VERIFYCODE . $this- keyPrefix . $key); return $r; return false; public function isVerified($key) { $r = $this- mc- get(self::PREFIX_VERIFIED . $this- keyPrefix . $key); if (!empty($r)) { return true; } else { return false; public function setVerifyCode($key, $code) { $verifytime = intval($this- config- verifytime); if ($verifytime 1) { return false; return $this- mc- set(self::PREFIX_VERIFYCODE . $this- keyPrefix . $key, $code, false, $verifytime); public function getStatus() { return $this- status; private function filterByWhitelist($value, $key) {// if (empty($this- whitelist[$key])) {// return false;// $ls = $this- whitelist[$key]; $ls = $this- whitelist; foreach ($ls as $i) { if ($i[strlen($i) - 1] == . ) { // ip segment if (strpos($value, $i) === 0) { return true; } else { if (strcmp($i, $value) === 0) { return true; return false; private function checkRule($key, $rule) { $flag = true; if (!empty($rule)) { foreach ($rule as $interval = $limit) { $k = $key . _ . $interval; $c = $this- mc- get($k); if (!$c) { $this- updates[$k] = 0; $this- intervals[$k] = $interval; $this- status[$k] = 0; } else { $this- updates[$k] = $c; $this- status[$k] = $c; if ($c = $limit) { $flag = false; return $flag; public static function getInstance($conf) { $mc = new Memcache(); $mc- connect( 115.159.28.112  $conf=json_decode(json_encode($conf)); return new self($mc, $conf);單個ip限制60秒1次單個關鍵字,比如手機號,限制60秒1次,3600秒10次$conf=array( prefix = selfservice: , key = array(60 = 1,3600= 10), ip = array(60 = 1),$spam=Sina_Mail_WebAntispam::getInstance($conf);if(!$spam- check( 127.25.12.123 ,17610725730)){ echo limit...  exit;//更新頻率限制$spam- update();

memache中最終的存儲key

【推薦課程:PHP視頻教程】

以上就是php頻率限制類的用法示例的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲毛片一区二区| 国产欧美亚洲精品| 久久精品久久久久| www.亚洲天堂| 精品精品国产国产自在线| 久久精品国产亚洲精品2020| 亚洲美女av黄| 国产午夜精品理论片a级探花| 久久久久国产精品免费网站| 欧美电影免费观看高清完整| 成人福利在线视频| 欧美极品美女电影一区| 亚洲精品久久视频| 欧美激情中文网| 亚洲国产小视频| 日韩av黄色在线观看| 2019中文字幕在线| 欧美刺激性大交免费视频| 丝袜一区二区三区| 亚洲男人天堂九九视频| 欧美性猛交xxxx乱大交| 久久精品91久久香蕉加勒比| 日韩在线免费视频观看| 91沈先生作品| 欧美日韩国产精品专区| 久久精品国产69国产精品亚洲| 久热爱精品视频线路一| 日韩电视剧免费观看网站| 亚洲综合第一页| 久久久久免费视频| 黑人狂躁日本妞一区二区三区| 51ⅴ精品国产91久久久久久| 亚洲欧美日韩一区二区在线| 成人免费视频在线观看超级碰| 欧洲午夜精品久久久| 欧美极品第一页| 欧美性猛交xxxx免费看漫画| 国产精品爽爽ⅴa在线观看| 97在线精品视频| 国产不卡精品视男人的天堂| 欧美亚洲国产另类| 国产一区二区三区毛片| 91精品国产91久久久久福利| 韩国视频理论视频久久| 精品色蜜蜜精品视频在线观看| 国产日韩视频在线观看| 欧美视频精品一区| 亚洲少妇中文在线| 北条麻妃一区二区三区中文字幕| 中文字幕亚洲欧美日韩在线不卡| 97人人模人人爽人人喊中文字| 亚洲日韩欧美视频| 欧美激情精品久久久| 亚洲精品电影久久久| 欧美刺激性大交免费视频| 国产丝袜视频一区| 亚洲国产另类 国产精品国产免费| 亚洲欧美日韩国产中文| 欧美有码在线观看| 欧美成人性生活| 国产精品黄页免费高清在线观看| 亚洲国产精品va在看黑人| 国产99久久精品一区二区 夜夜躁日日躁| 国产精品久久999| 久久久人成影片一区二区三区| 亚洲aⅴ男人的天堂在线观看| 欧美性猛交xxxx乱大交蜜桃| 欧美有码在线视频| 乱亲女秽乱长久久久| 一区二区在线视频| 欧美多人乱p欧美4p久久| 国语自产精品视频在线看| 国产精品视频不卡| 精品成人国产在线观看男人呻吟| 日韩免费在线观看视频| 亚洲精品免费一区二区三区| 亚洲人成网站免费播放| 中文字幕欧美日韩va免费视频| 国内精品久久久久影院 日本资源| 国产精品激情av电影在线观看| 欧美激情2020午夜免费观看| 国产精品一香蕉国产线看观看| 在线观看精品自拍私拍| 日韩电影免费观看中文字幕| 欧美日韩免费在线观看| 欧美亚洲成人精品| 亚洲一区二区日本| 97视频网站入口| 国产精品高清在线观看| 久久香蕉国产线看观看网| 91黑丝高跟在线| 欧美制服第一页| 中文字幕v亚洲ⅴv天堂| 欧美精品电影免费在线观看| 国产成人精品在线观看| 91天堂在线观看| 成人国产精品免费视频| 91综合免费在线| 最近免费中文字幕视频2019| 国产极品精品在线观看| 亚洲美女精品成人在线视频| 欧美国产在线电影| 日本免费久久高清视频| 国产精品欧美久久久| 亚洲第一av在线| 国产激情视频一区| 久久久久亚洲精品成人网小说| 国产精品电影网| 亚洲国产毛片完整版| 久久琪琪电影院| 日韩天堂在线视频| 日韩毛片中文字幕| 日本欧美国产在线| 欧美日韩午夜视频在线观看| 亚洲精品黄网在线观看| 国产精品久久久久久久午夜| 深夜福利91大全| 91免费综合在线| 精品国产91乱高清在线观看| 国产视频丨精品|在线观看| 国产91精品久久久久久久| 亚洲最新av网址| 久久深夜福利免费观看| 亚洲精品久久7777777| 亚洲香蕉成人av网站在线观看| 日韩免费在线视频| 久久全球大尺度高清视频| yw.139尤物在线精品视频| 精品国产1区2区| 久久综合久久八八| 日本欧美一二三区| 尤物yw午夜国产精品视频| 亚洲人成网站免费播放| 国产精品福利在线观看| 亚洲激情电影中文字幕| 国产精品老女人视频| 国产精品女视频| 大荫蒂欧美视频另类xxxx| 中文字幕综合一区| 欧美日韩久久久久| 国产精品女人网站| 九九精品视频在线观看| 成人国产精品久久久久久亚洲| 久久久爽爽爽美女图片| 亚洲精品福利在线| 亚洲aaaaaa| 国产成人精品一区二区三区| 久久精品电影一区二区| 中文字幕av一区中文字幕天堂| 欧美日韩亚洲视频| 茄子视频成人在线| 亚洲美女精品久久| 欧美日韩中文字幕综合视频| 精品久久久久久国产91| 亚洲精品短视频| 97视频网站入口| 国模精品视频一区二区| 精品国产91久久久久久| 精品久久久国产| 国产一区视频在线| 欧美在线一级va免费观看| 97超碰蝌蚪网人人做人人爽| 亚洲欧美国产精品专区久久| 一本一本久久a久久精品综合小说|