chaker2710 / laravel-telnet
用于通过telnet向主机写入/读取命令的客户端。
v1.0.0
2023-08-14 09:54 UTC
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-09-14 12:11:02 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 /"