我有关于获取IP地址的问题,我已经提到了一些在线资源和一些答案,但我还是无法解决它, https://forums.virtualbox.org/viewtopic.php?f=34&t=65910 - 与我的问题最匹配的链接。
配置:
Host Machine : Windows 8
Guest : Slitaz 4.0
VirtualBox : 4.3.24
VirtualBox Java API : 4.3
Adapter in VM : Host Only Adapter
Slitaz Guest Additions are also installed.
我使用VirtualBox API创建了一个Java程序,我基本上可以在VirtualBox中连接,克隆和启动VM。但我无法做的是获取机器的IP地址。 (为什么我需要IP是因为我想通过SSH连接到那台机器,使用JSCH java库并执行一些进程)
这是我到目前为止所尝试的,
基于上述链接,
machine.getGuestPropertyValue("/VirtualBox/GuestInfo/Net/<nicid>/V4/IP") - returns empty result
machine.getGuestPropertyValue("/VirtualBox/GuestInfo/Net/Count") - returns empty result
machine.getGuestPropertyValue("/VirtualBox/GuestInfo/Net/<nicid>/MAC") - return empty result
machine.getGuestPropertyValue("/VirtualBox/GuestInfo/OS/Release") - this gives me release version of linux - which is ok
我还试了一下,确切地说有多少属性
org.virtualbox_4_3.Holder<List<String>> tempList = new Holder<List<String>>();
org.virtualbox_4_3.Holder<List<String>> tempList1 = new Holder<List<String>>();
Holder<List<Long>> tempList2 = new Holder<List<Long>>();
org.virtualbox_4_3.Holder<List<String>> tempList3 = new Holder<List<String>>();
machine.enumerateGuestProperties("",tempList, tempList1,tempList2,tempList3);
现在在templist中,我得到所有可用属性的名称,并在tempList1中得到它的值。
[/VirtualBox/GuestInfo/OS/Product, /VirtualBox/HostInfo/GUI/LanguageID, /VirtualBox/HostInfo/VBoxVerExt, /VirtualBox/GuestAdd/Vbgl/Video/SavedMode, /VirtualBox/GuestInfo/OS/Version, /VirtualBox/GuestAdd/VersionExt, /VirtualBox/GuestAdd/Revision, /VirtualBox/HostGuest/SysprepExec, /VirtualBox/GuestAdd/Vbgl/Video/0, /VirtualBox/HostGuest/SysprepArgs, /VirtualBox/GuestAdd/Version, /VirtualBox/HostInfo/VBoxRev, /VirtualBox/HostInfo/VBoxVer, /VirtualBox/GuestInfo/OS/Release, /VirtualBox/GuestAdd/HostVerLastChecked]
这就是我认为这有效的原因
machine.getGuestPropertyValue("/VirtualBox/GuestInfo/OS/Release") - this gives me release version of linux - which is ok
但是没有与IP相关的财产。此外,我不确定这里究竟是什么nicid以及如何使用API来获取它,是VM中的适配器的mac地址,还是别的什么。
machine.getGuestPropertyValue("/VirtualBox/GuestInfo/Net/<nicid>/V4/IP")
有人可以帮助我或在适当的方向指导。
答案 0 :(得分:0)
感谢虚拟框论坛,解决问题的方法是链接 https://forums.virtualbox.org/viewtopic.php?f=34&t=66788&sid=bc4d34a5ad65fe3ff5006f91c8690817
但总结一下解决方案,
VBoxService
的启动过程中,问题Slitaz
未自动启动。etc/rcS.conf
文件以在LOAD_MODULES中添加额外的程序
.............. /usr/sbin/VBoxService
(使用which VBoxService
获取服务路径)vboxmanage guestproperty enumerate '<vmname>'
列出了所有配置Name: /VirtualBox/GuestInfo/Net/0/V4/IP, value: 192.168.56.101, timestamp: 1427467107101664501, flags:
希望它可以帮到某人!!!