chaker2710/laravel-telnet

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

v1.0.0 2023-08-14 09:54 UTC

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