2 つの文字列に 2 つの IP アドレス値を保存しました
a = '116.95.123.111'
b = '116.95.122.112'
IPアドレスの最初の2つの部分、つまり116.95
2つの文字列の部分を比較したいだけで、両方の文字列で同じであるため、比較はtrueを返す必要があります。PHPでこの部分的な文字列比較を行う方法は?
2 つの文字列に 2 つの IP アドレス値を保存しました
a = '116.95.123.111'
b = '116.95.122.112'
IPアドレスの最初の2つの部分、つまり116.95
2つの文字列の部分を比較したいだけで、両方の文字列で同じであるため、比較はtrueを返す必要があります。PHPでこの部分的な文字列比較を行う方法は?
substr_compare
バイナリセーフです。
この特定の場合(IPアドレスの比較)
if((ip2long($a) >> 16) == (ip2long($b) >> 16)) echo "equal";
IP アドレスには先行ゼロを含めることができます。分解するとき、先行ゼロが無視されるように、それらを整数として比較できます。
$a = "116.95.123.111";
$b = "116.095.123.111" // same IP as $a, but with leading zero
「きれいな」方法は、このようなものです...
$ip1 = explode(".", $a);
$ip2 = explode(".", $b);
if (($ip1[0] == $ip2[0]) && (ip1[1] == $ip2[1])) {
// success. Do something
} else {
// not valid
}