php管理虚拟机,通过代理连接
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,1、 进入安装目录Cd C:\Program Files\Oracle\VirtualBox设置web认证库为null:VboxManagesetproperty websrvauthlibrary
千家信息网最后更新 2025年01月31日php管理虚拟机,通过代理连接
1、 进入安装目录
Cd C:\Program Files\Oracle\VirtualBox
设置web认证库为null:
VboxManagesetproperty websrvauthlibrary null
然后开启服务
vboxwebsrv --host 0.0.0.0
2、在浏览器输入http://127.0.0.1:18083
在博客下方附件,提供vbox接口文件
写代码实现时,vbox_oper操作帮助类
include_once('vboxServiceWrappers.php');
class Vbox_oper
{
protected $serverIp;
protected $serverPort = "18083";
protected $proxy_uname;
protected $proxy_password;
protected $proxy_host;
protected $proxy_port;
protected $item;
protected $connection;
/*
* 模块名称:得到连接
* 参数说明:
* 作者:csl
*/
public function getConn()
{
$url = "http://" . $this->serverIp . ":" . $this->serverPort . "/";
//$this->connection = new SoapClient("vboxwebService.wsdl", array('location' => $url, 'connection_timeout' => 5,));
$this->connection = new SoapClient("vboxwebService.wsdl", array('location' => $url,'connection_timeout'=>5,
'proxy_host' => $this->proxy_host, 'proxy_port' => $this->proxy_port,
'proxy_login' => $this->proxy_uname, 'proxy_password' => $this->proxy_password));
return $this->connection;
}
/*
* 模块名称:初始化代理信息
* 参数说明:
* init_proxy 包含:ip,port,username,password
* 作者:csl
*/
public function init_proxy($proxy){
if(!empty($proxy['ip']))
$this->proxy_host = $proxy['ip'];
if(!empty($proxy['port']))
$this->proxy_port = (int)$proxy['port'];
if(!empty($proxy['username']))
$this->proxy_uname = $proxy['username'];
if(!empty($proxy['password']))
$this->proxy_password = $proxy['password'];
}
/*
* 模块名称:初始化服务器信息
* 参数说明:
* init_proxy 包含:server_ip,sbmc
* 作者:csl
*/
public function init_data($item, $proxy = array())
{
$this->serverPort = "18083";
if(!empty($item['server_ip']))
$this->serverIp = $item['server_ip'];
if(!empty( $item['sbmc']))
$this->name = $item['sbmc'];
if (!empty($proxy)) {
$this->init_proxy($proxy);
}
}
/*
* 模块名称:启动虚拟机
* 参数说明:
* 作者:csl
*/
public function start()
{
$this->getConn();
$websessionManager = new IWebsessionManager($this->connection);
$virtualbox = $websessionManager->logon("", "");
$machine = $virtualbox->findMachine($this->name);
$session = $websessionManager->getSessionObject($virtualbox->handle);
$state = (string)$machine->state;
if ($state != 'Running' && $state != 'Paused') {
$progress = $machine->launchVMProcess($session->handle, "headless", "");
}
}
/*
* 模块名称:关闭虚拟机
* 参数说明:
* 作者:csl
*/
public function stop()
{
$this->getConn();
$websessionManager = new IWebsessionManager($this->connection);
$virtualbox = $websessionManager->logon("", "");
$machine = $virtualbox->findMachine($this->name);
$session = $websessionManager->getSessionObject($virtualbox->handle);
$state = (string)$machine->state;
if ($state == 'Running' || $state == 'Paused') {
$lockType = new LockType($session, 'Shared');
$machine->lockMachine($session, $lockType->NameMap[1]);
$iconsole = $session->getConsole();
$progress = $iconsole->powerDown();
}
}
/*
* 模块名称:重启虚拟机
* 参数说明:
* 作者:csl
*/
public function restart()
{
$this->getConn();
$websessionManager = new IWebsessionManager($this->connection);
$virtualbox = $websessionManager->logon("", "");
$machine = $virtualbox->findMachine($this->name);
$session = $websessionManager->getSessionObject($virtualbox->handle);
$state = (string)$machine->state;
if ($state == 'Running' || $state == 'Paused') {
$lockType = new LockType($session, 'Shared');
$machine->lockMachine($session, $lockType->NameMap[1]);
$iconsole = $session->getConsole();
$progress = $iconsole->reset();
} else if ($state == 'PoweredOff') {
$progress = $machine->launchVMProcess($session->handle, "headless", "");
}
}
/*
* 模块名称:获取vbox里面所有虚拟机
* 参数说明:
* 作者:csl
*/
public function get_machines(){
$this->getConn();
$websessionManager = new IWebsessionManager($this->connection);
$virtualbox = $websessionManager->logon("", "");
$machines = $virtualbox->machines;
return $machines;
}
}
作者
参数
名称
模块
信息
附件
服务
代理
代码
博客
接口
文件
服务器
浏览器
目录
帮助
浏览
认证
输入
管理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发算提供劳务吗
计算机网络技术发展的意义
中科曙光服务器管理ip地址
苏州软件开发培训机构哪家
达梦查询数据库的大小
联通杯网络安全知识竞赛题库
如何下载网站的数据库
迅雷网盘能当服务器吗
服务器连接成功但上不了网
网络安全手机丢失信息怎么办
手机利用云服务器上网
西山区服务器回收多少钱
网络技术部主要职责
dt数据库
帝国神话服务器怎么打开控制面板
有三级网络技术能报四级嵌入式
拒绝网络暴力算网络安全吗
德州软件开发价格
萤石云数据库安全吗
安信天行网络安全中标
南京晓庄论文数据库
软件开发为什么要用分层结构
无效服务器
关于sqlite3数据库的操作
山东网络安全宣传讲话
学校网络安全横幅
远程软件开发alt键不弹起
网络安全股掀起涨停潮
dns服务器未检测到响应
空间数据库空间查询伪代码