Переменная PHP в команде ssh2_exec

У меня проблема с помещением переменной с IP-адресом в команду ssh2.

$somestring = 'ebtables -t filter -A FIREWALL -p IPv4 --ip-src '.$newifaceaddr.' --ip-proto tcp --ip-dport 22 -j ACCEPT';
$somevar = ssh2_exec($connection, $somestring); 

Команда работает, но не полностью. Ожидаемый результат "-p IPv4 --ip-src 192.168.1.247 --ip-proto tcp --ip-dport 22 -j ACCEPT", но то, что я получаю"-p IPv4 --ip-src 192.168.1.247 -j CONTINUE"

Самое смешное, что если я напишу команду в виде строки без переменной, как это "ebtables -t filter -A FIREWALL -p IPv4 --ip-src 192.168.1.247 --ip-proto tcp --ip-dport 22 -j ACCEPT"это работает отлично. И когда я печатаю один с переменной, а другой без вывода, то же самое, поэтому я не знаю, в чем проблема.

Я пробовал этот PHP SSH2 exec "$", и это не помогает, и многое другое. plx halp:<

1 ответ

Проблема заключалась в том, что когда я получал данные IP из SSH2 через ssh2_exec, последний символ строки был каким-то пустым символом, который мне пришлось удалить, используя $newifaceaddr = preg_replace('/\s+/', '', $newifaceaddr);

После этого все заработало по-хорошему.

Другие вопросы по тегам