4
特定のIPv4アドレスが特定のネットワークにあるかどうかを判断する機能を探しています。IPアドレスがネットワーク内にあるかどうか確認してください
thisと似ています。ただし、必要がない場合は、完全なフレームワークをインストールしたり、ホイールを再構築したりすることは望ましくありません。アイデアは、次のようになり
: - EDIT -
function IsInNetwork($givenIP, $networkIP, $netmask) {
// ???
}
$valid = IsInNetwork("10.0.9.35", "10.0.8.0", "255.255.254.0");
リッチ・アダムスの助けを借りて
、彼は正しい方向に私を指摘し、次のを思い付いた:
このようなfunction IsInNetwork2($givenIP, $networkIP, $netmask)
{
$ipaddr = ip2long($givenIP);
$netip = ip2long($networkIP);
$netmask = (ip2long($netmask) * -1) + $netip;
if ($ipaddr >= $netip && $ipaddr <= $netmask){
return true;
} else {
return false;
}
}
ありがとう、それは正しい方向に私を指摘した。私はそれを少し変更しなければならなかったが、それは機能する。 – jinanwow
こんにちは、$ neworkの値はどこですか? – MCurbelo