borisuu / laravel-telnet
一个用于通过telnet向主机写入/读取命令的客户端。
dev-master
2020-10-16 22:24 UTC
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-09-17 07:11:11 UTC
README
更新 08.10.2020 - borisuu: 我已经将其制作成一个composer包,以便更容易地安装到其他项目中。没有进行代码更改。
PHP中的Telnet客户端实现。
此代码基于 https://github.com/ngharo/Random-PHP-Classes/blob/master/Telnet.class.php,但已完全重写。我尽可能保持了接口兼容性。
我知道不再相同的事情
- 使用构造函数带有超过2个参数,后续参数的意义和顺序已经改变
- 行结束符应始终返回给调用者作为"\n",但这种保证基于正确的服务器实现(默认(文本)状态下将行结束符编码为
的服务器) - buffer和global_buffer以及它们相关的方法已消失
- 构造函数不再执行connect()调用
- 子类化接口可能已损坏(我无法在不跳过状态机的情况下保留getBuffer()方法)
许多事情仍然不正确(尽管上游版本也是如此)
- 我们不/不会抑制Go Ahead,Echo和Linemode,但我们期望它们能够正常工作等。
使用示例
use Borisuu\Telnet\TelnetClient; //Uncomment this to get debug logging //TelnetClient::setDebug(true); $telnet = new TelnetClient('127.0.0.1', 23); $telnet->connect(); $telnet->setPrompt('$'); //setRegexPrompt() to use a regex //$telnet->setPruneCtrlSeq(true); //Enable this to filter out ANSI control/escape sequences $telnet->login('telnetuser', 'weak'); $cmdResult = $telnet->exec('ls /'); $telnet->disconnect(); print("The contents of / is: \"{$cmdResult}\"\n");
或者,查看testTelnet.php
$ ./testTelnet.php -h
$ ./testTelnet.php -u telnetuser -p weak -H 127.0.0.1 -P 23 -c "ls /"