Мне нужно выполнить трассировку TCP с использованием трассировки Linux или другого пакета, но я изо всех сил пытаюсь найти способ сделать запрос из PHP без необходимости использования привилегий sudo.
Поскольку URL будет из запроса пользователя, я не хочу использовать sudo.
Вот пример:
$url = 'ebay.com';
$exec = 'sudo traceroute -w 1 -q 1 -T ' . $url;
$escaped_command = escapeshellcmd($exec);
$result = shell_exec($escaped_command);
echo $result;
var_dump($result);
Этот код работает, но только с sudo
или без -T
. Без sudo
возвращает пустую строку. Без -T
traceroute не выживает брандмауэры.
Если это поможет, я на ОС Centos 7.
Примечание: я не могу использовать UDP вместо TCP, потому что он часто блокируется целевым межсетевым экраном.