Простой PHP — это IP в подсети, если есть проблема

Поэтому я пытаюсь проверить, находится ли IP-адрес в качестве определенного префикса или сети. Я почти запустил эту программу, однако мой if if else только повторяет первую часть, даже если вы предоставляете данные, которые должны возвращать false. Интересно, как я могу решить эту проблему. Спасибо

Позже я повторяю свой ip_test (ввод пользователя, IP, сеть, Cidr).
Я получаю эти значения через отправку формы на странице HTTP, а не через массив _REQUEST.

<?php

//variables + assignment of user input on html form.
$net = ($_REQUEST['uname1']);
$pre = ($_REQUEST['uname2']);
$ipv4 = ($_REQUEST['uname3']);

function cidr_match ($ip, $network, $cidr)
{

if ((ip2long($ip) & ~((1 << (32 - $cidr)) - 1) ) == ip2long($network)) {
echo "IP address $ip is within $network/$cidr subnet.";
}
else {
echo "IP address $ip is NOT within $network/$cidr subnet.";

}}

echo "Subnet ID:" . $net;
echo "<br>";
echo "Prefix Length:" . $pre;
echo "<br>";
echo "Subnet IP Address (IPv4):" . $ipv4;
echo "<br>";
echo cidr_match($ipv4, $net, $pre);

?>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]