[CakePHP2] コントローラーでIP制限をかける

CakePHP2でコントローラーでIPアドレスの制限をかけたい場合。

public function beforeFilter() {
	//許可されたIP意外はアクセスさせない
	$ipList = ['192.168.0.1','123.456.789.123'];
	$ip = $this->request->clientIP();
	//許可されたIPかどうか
	if(!in_array($ip, $ipList)){
		$this->log('許可されていないIP:'.$ip);
		throw new ForbiddenException();
	}
	parent::beforeFilter();
}

社内の場合は~って場合は、preg_match使うのもいいかも。

public function beforeFilter() {
	//許可されたIP意外はアクセスさせない
	$ipList = ['192.168.0.1','xxx.xxx.xxx.xxx'];
	$ip = $this->request->clientIP();
	
	//社内判定
	if (!preg_match("/192\.168\.0\..*/",$ip)){
		//許可されたIPかどうか
		if(!in_array($ip, $ipList)){
			$this->log('許可されていないIP:'.$ip);
			throw new ForbiddenException();
		}
	}
	parent::beforeFilter();
}

 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>