2013-07-27 108 views
6

的Parallels有一个命令行API,它是记录here如何从主机获取Parallels VM使用的IP地址?

>prlctl list 
UUID         STATUS  IP_ADDR   NAME 
{ca50aac6-caa6-47a6-9bfe-e38f6261cb8d} running  -    win7 

不过,即使有这样的报道IP_ADDR总是空的,即使计算机作为拥有互联网连接。

如何从客人中找到机器的IP?我需要一种通过使用域名或IP连接到访客的方法。

+2

不幸的是'prlctl'现在是一个专业版限定功能... –

+0

@LarsBilke这意味着更多的理由废料VirtualBox的Parallels的,即使显然不是如此很酷,但我对于9/10用户来说,显然不止这些。 – sorin

回答

12

清晰可见,如果它是一个Windows VM,则可以从主机下面的命令获取IP:

prlctl exec "VM Name" ipconfig | grep "IPv4" | grep -o '\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}' 

对于* nix的VM:

prlctl exec "VM Name" ifconfig eth1 | grep "inet " | grep -o 'addr:\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}' | grep -o '\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}' 
+1

此答案应以“如果客户机上安装Parallels Tools ...”为开头,“exec”命令仅适用于安装了Tools的guest虚拟机。 – hshib

+0

哇,我甚至不需要知道ip地址就可以远程ssh到VM,因为我可以直接运行命令 - 如果ssh/telnet连接被拒绝,这是一件好事。 – Michael

7

如果你想使用SSH访问机器,有一个内置命令可以帮助解决这个问题。

prlctl enter <VM_ID|VM_NAME>

这将打开一个提示为根,以VM 如果你想在IP任何其他原因还有另一种方式来获得它

prlctl exec <VM_ID|VM_NAME> ifconfig

execprlctl命令将在主机linux机器上执行ifconfig命令(如果使用windows做ipconfig而不是ifconfig

所有ifconfig的输出将被打印在终端上,并且IP将在输出

+0

使用“输入”SS​​H是绝对要走的路。谢谢! – kwcto

+0

我一直在寻找这一天的确切功能。谢谢! –

+0

这个答案应该以“如果客户端上安装Parallels Tools ...”开头。“enter”和“exec”命令只能在安装了Tools的guest中使用。 – hshib