meklis / console-client
SSH/Telnet 客户端
0.0.3
2022-05-26 18:51 UTC
Requires
- php: >=7.2.0
- ext-mbstring: *
- ext-sockets: *
- ext-ssh2: *
This package is auto-updated.
Last update: 2024-09-10 20:51:56 UTC
README
PHP 库,用于通过 Telnet 和 SSH 连接到设备进行登录/密码连接。
安装
composer require meklis/console-client
示例
SSH 连接到 ZTE 设备
require __DIR__ . '/vendor/autoload.php'; $ssh = new \Meklis\Network\Console\SSH(); $ssh->setDeviceHelper(new \Meklis\Network\Console\Helpers\ZTE()); $ssh->connect("10.0.0.2", 2222); //Ip and custom port $ssh->login("login", "password"); echo $ssh->exec("show card");
Telnet 连接到 Dlink 设备
require __DIR__ . '/vendor/autoload.php'; $ssh = new \Meklis\Network\Console\Telnet(); $ssh->setDeviceHelper(new \Meklis\Network\Console\Helpers\Dlink()); $ssh->connect("10.0.0.1"); $ssh->login("login", "password"); echo $ssh->exec("show switch");
支持的厂商
- Alcatel
- Alaxala
- Bdcom
- Cdata
- Dlink
- Dell
- Edgecore
- Foxgate
- Gcom
- Huawei
- Tp-link
- Ios
- ZTE
- Junos
- Linux
- Vsolution
- Xos
要添加自己的厂商,可以创建一个扩展自 DefaultHelper 的 Helper,并实现 HelperInterface。
Helper 示例
namespace Meklis\Network\Console\Helpers; class Cdata extends DefaultHelper { protected $prompt = 'OLT(.*?)[>#]'; protected $userPrompt = 'ame:'; protected $passwordPrompt = 'ord:'; protected $afterLoginCommands = []; protected $beforeLogoutCommands = []; protected $windowSize = null; public function isDoubleLoginPrompt(): bool { if ($this->connectionType === 'ssh') { return true; } return $this->doubleLoginPrompt; } }