使用PHP我想将实际的ip地址与其中一部分进行比较,看看它是否匹配。 例如,我想查看地址是否与12.34匹配。。
<?php
$rem_address = getenv('REMOTE_ADDR');
$temp = substr ($rem_address,0,6)
if ($temp == "12.34.") echo "It's a match";
?>
有更简单/更好的方法吗?
答案 0 :(得分:4)
函数 strpos( $ haystack , $ needle )会告诉你 $ haystack 字符串出现的字符串。
只要您仔细检查使用===比较运算符,就可以看到"12.34"
是否出现在IP地址的开头。
if (strpos ($rem_address, "12.34.") === 0) echo "It's a match";
查看documentation并注意警告。
答案 1 :(得分:2)
$parts = explode(".",$rem_address); if ($parts[0] == "12" && $parts[1] == "34") echo "match";
答案 2 :(得分:0)
<?php
$full_address = getenv('REMOTE_ADDR');
$pattern = "/^" . preg_quote('12.34') . "/";
$count = preg_match($pattern, $full_address);
if ($count!=0) {
//match
}
?>
答案 3 :(得分:0)
更多方法,基于ip2long
:
(ip2long($_SERVER['REMOTE_ADDR']) & 0xFFFF0000) == 0x0C220000
! ((ip2long($_SERVER['REMOTE_ADDR']) & 0xFFFF0000) ^ 0x0C220000)
! ((ip2long($_SERVER['REMOTE_ADDR']) ^ 0x0C220000) >> 16)