borisuu/laravel-telnet

一个用于通过telnet向主机写入/读取命令的客户端。

dev-master 2020-10-16 22:24 UTC

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 /"