Php 比较用户IP与.txt文件内容
我有一个.txt文件,其中包含大约100.000个IP(黑名单),我想检查当前用户IP是否存在于该.txt文件中,如果是,脚本执行应该停止 不使用.htaccess最有效的方法是什么Php 比较用户IP与.txt文件内容,php,Php,我有一个.txt文件,其中包含大约100.000个IP(黑名单),我想检查当前用户IP是否存在于该.txt文件中,如果是,脚本执行应该停止 不使用.htaccess最有效的方法是什么 $file = file_get_contents( "your_text_file.txt" ); if( preg_match( "/$ip/", $file ) ) { // block } 如果要使用preg_match进行阻止,可能需要将换行符添加到搜索字符串中并转义句点字符,因为否则它们将匹配任何
$file = file_get_contents( "your_text_file.txt" );
if( preg_match( "/$ip/", $file ) ) {
// block
}
如果要使用preg_match进行阻止,可能需要将换行符添加到搜索字符串中并转义句点字符,因为否则它们将匹配任何单个字符(尽管不太可能,但这可能会阻止普通用户)。Htaccess更适合于此查询,甚至是数据库查询。我认为存储数据的方式将帮助您更快地查找。保持数据的排序格式,然后尝试进行二进制搜索,这样可以帮助您更快地搜索内容。我只是建议理论部分:)请发布您已经尝试过的代码。可能重复的可能重复的可能重复的我没有使用。htaccess您使用的是数据库吗?这也将在几乎相同的IP上匹配,还是?我的意思是,如果我在禁止列表中有127.0.0.12,并且我的IP是127.0.0.1,它也会被阻止?如果每个IP地址都在一个新行上,在搜索字符串的末尾添加\n,例如“/127\.0\.0\.12\n/”你可以使用stru replace来替换“\”字符。谢谢,同时我发现:
if(preg\u匹配(“\b{$IP}\b}\b},$file)”