Php 你好,我想将我的ip地址与ip文本列表匹配。那怎么办?而我的ip地址和我的ip文本列表中的ip地址是正确的

Php 你好,我想将我的ip地址与ip文本列表匹配。那怎么办?而我的ip地址和我的ip文本列表中的ip地址是正确的,php,Php,你好,我想将我的ip地址与ip文本列表匹配。那怎么办?而我的ip地址和我的ip文本列表中的ip地址是正确的。而且已经有好几次当它有相同的ip地址时,我打开并总是拒绝访问 <?php function inStr($s, $as){ $s = strtoupper($s); if(!is_array($as)) $as=array($as); for($i=0;$i<count($as);$i++) if(strpos(($

你好,我想将我的ip地址与ip文本列表匹配。那怎么办?而我的ip地址和我的ip文本列表中的ip地址是正确的。而且已经有好几次当它有相同的ip地址时,我打开并总是拒绝访问

<?php
function inStr($s, $as){
    $s = strtoupper($s);
    if(!is_array($as)) 
        $as=array($as);

    for($i=0;$i<count($as);$i++) 
        if(strpos(($s),strtoupper($as[$i]))!==false) 
            return true;
    return false;
}

$ipchecker = file_get_contents('http://anonsec.us/iplist.txt');
$ip = _SERVER['REMOTE_ADDR'];
if (instr($ipchecker, ''.$ip.'')) {
    echo 'GRANTED';
} else {
    echo 'Access Denied';
}
?>

如果您知道ipchecker的分隔符,可以使用: ipchecker分隔符带有逗号的示例如下:127.0.0.1255.255.255.255

$delimiter = ",";
$ipList = explode($delimiter, $ipchecker);

if (in_array($ip, $ipList)) {
    echo 'GRANTED';
} else {
    echo 'Access Denied';
}

请尝试
$\u SERVER['REMOTE\u ADDR']
为什么在
'.$ip'中使用所有引号。
i使用$\u SERVER['REMOTE\u ADDR']在打开PHP标记后立即进行测试时,它同样会失败,例如
如果ip是IPv4(例如123.123.123.123.123等),则不需要
strotupper()
因为它们只包含数字和点。