構成ファイルを追加し、プログラムの初期化時に、特定のルールに従って禁止する必要がある IP アドレスを構成ファイルに追加し、構成ファイル内の各ルールを読み取り、この記事で説明する方法を使用します。現在のアクセスされたクライアント IP アドレスがこれらのルールに存在するかどうかを確認し、存在する場合、サービスは拒否されます。
コードをコピー コードは次のとおりです:
/**
* PHP で IP アドレスを確認またはフィルターします
*
* IP 範囲、CIDR (クラスレスドメイン間ルーティング)、単一 IP 形式をサポートします
* 構成: http://www.CodeBit.cn
* 参照:
* - { @link http://us2.php.net/manual/zh/function.ip2long.php#70055}
* - {@link http://us2.php.net/manual/zh/function.ip2long.php# 82397}
*
* @param string $network ネットワーク セグメント、IP 範囲、CIDR、単一 IP 形式をサポート
* @param string $ip チェックする IP アドレス
* @return boolean
*/
function netMatch($network, $ip) {
$network = trim($network) ;
$ ip = トリム($ip);
$result = false;
// IP 範囲 : 174.129.0.0 - 174.129.255.255
if (false !== ($pos = strpos($network, "-") )) {
$from = ip2long(trim(substr($network, 0, $pos)))
$to = ip2long(trim(substr($network, $pos+1))); ($ip );
$result = ($ip >= $from および $ip // CIDR : 174.129.0.0/16
} else if (false !== strpos($network) ,"/ ")) {
list ($net, $mask) = 爆発 ('/', $network)
$result = (ip2long($ip) & ~((1 << (32 - $)マスク)) - 1)) == ip2long($net);
// 単一 IP
} else {
$result = $network === $ip;
return $result;
// 174.129. 0.0 - 174.129 .255.255
var_dump(netMatch(' 174.129.0.0 - 174.129.255.255 ', '174.129.1.31')); // True
var_dump(netMatch(' 174.129.0.0/16 ', 「174.139.1.31」) ); // False
var_dump(netMatch(' 174.129.1.32 ', '174.129.1.31')); // False
?>
IP アドレスには一定の制限があり、使用には注意が必要ですが、緊急の制限されたアクセスには依然として非常に役立ちます。
http://www.bkjia.com/PHPjc/324737.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/324737.html技術記事構成ファイルを追加し、特定のルールに従って禁止する必要がある IP アドレスを構成ファイルに追加することができます。プログラムの初期化時に、構成ファイル内のすべてのエントリを読み取ります...。