Переменная 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);
После этого все заработало по-хорошему.