千家信息网

php管理虚拟机,通过代理连接

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,1、 进入安装目录Cd C:\Program Files\Oracle\VirtualBox设置web认证库为null:VboxManagesetproperty websrvauthlibrary
千家信息网最后更新 2025年12月02日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;
}
}



附件:http://down.51cto.com/data/2366921
作者 参数 名称 模块 信息 附件 服务 代理 代码 博客 接口 文件 服务器 浏览器 目录 帮助 浏览 认证 输入 管理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 游戏每日任务数据库表的设计 web服务器工作于 服务器 百度 石嘴山软件开发网上价格 许昌软件开发解决方案 虹口区会计网络技术咨询报价 电信安全网络安全信息安全 汽车销售管理系统数据库实验报告 江西达科互联网科技有限公司 松江区企业网络技术服务口碑推荐 庐江综合网络技术咨询介绍 软件开发实操报告 长沙软件开发培训学校排名 有关安全的童谣网络安全一年级 软件开发专业的考研方向 谷歌哪个版本可以连服务器 数据库的角色的定义 sql读取数据库指定行 企业网络安全问卷调查目的 网络安全法要求网络日志留存 数据库长时间未登录奔溃 昌吉互联网科技就业前景怎么样 鲁冰花伴奏软件开发 ado连接数据库的连接字符串 TD数据库创建内存表 国家网络安全活动报告 崇明区个性化软件开发产品介绍 服务器租用后怎么登陆 58同城服务器累趴下了 网络服务器的搭建与管理
0