我在将带有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 :<
发布于 2017-03-02 00:14:13
问题是,当我通过ssh2_exec从SSH2获取IP数据时,字符串的最后一个字符是一些空白字符,我必须使用$newifaceaddr = preg_replace('/\s+/', '', $newifaceaddr);将其删除
在那之后,一切都顺利地进行了。
https://stackoverflow.com/questions/42534547
复制相似问题