Вы можете получить IP-адрес пользователя, используя $_SERVER['REMOTE_ADDR']
, а затем использовать утилиту traceroute
, чтобы получить прыжки и проверить маршрутизаторы, которые вы хотите найти, если вы знаете IP-адреса обоих из них.
Предполагается, что маршрутизатор не транслирует адреса для них, в противном случае это не будет работать, так как он полагается на возможность возврата через маршрутизатор к пользователю. Если любой из маршрутизаторов может вернуться к пользователю, он не будет работать вообще. Тем не менее, подходит для коммутируемых пользователей.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$router1IP = "123.123.123.123";
$output = array();
exec('traceroute -n ' . $ip, $output, $result);
if ($result == 0) {
$outputText = implode("\n", $output);
if (preg_match("/" . preg_quote($router1IP) . "/", $output)) {
echo "Router 1";
} else {
echo "Router 2";
}
}
?>