1

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 ハーフ :<

4

1 に答える 1

0

問題は、ssh2_exec を介して SSH2 から IP のデータを取得したとき、文字列の最後の文字が空白文字であり、使用して削除する必要があったことでした。$newifaceaddr = preg_replace('/\s+/', '', $newifaceaddr);

その後、すべてが適切に機能しました。

于 2017-03-01T16:14:12.920 に答える