Page 1 of 2

how to get IP of guest operating system?

Posted: 30. Nov 2010, 11:37
by akki
Hi All,

I have installed Virtual box on Mac and loaded Free BSD 8 on it. Previously I was using vmware that maintains the IP of guest operating system in ".leases" file.
Is there any some mechanism in Virtual box by which I can get the IP of guest free bsd operating system?

Please guide me.


-akki

Re: how to get IP of guest operating system?

Posted: 30. Nov 2010, 17:48
by mpack
As far as I know VBox has no such feature, however most guest OSs do. I don't know FreeBSD, but in Windows you open a command window and type "ipconfig". I think "ifconfig" is the Linux equivalent, but for BSD Unix I have no idea.
 Edit:  Out of curiosity I just did a google search, and it seems that "ifconfig" actually originated on BSD, so that may be the correct command for you too. 

Re: how to get IP of guest operating system?

Posted: 1. Dec 2010, 05:15
by joseph1962smith
From your question, I am assuming you are trying to get the IP address of the guest VM from the host system on which the guest VM is running.

The suggestion to use ipconfig (win) or ifconfig (*nix) will only give the IP address of the guest if the command is executed inside the guest VM.

VirtualBox does provide the ability to query guest VM properties using the "VBoxManage guestproperty" option. The "VBoxManage guestproperty" command can be executed against running and non-running guest VMs. Some properties (like the IP address) it appears will only be returned if the guest VM is running.

Here is an example of the "VBoxManage guestproperty enumerate <vmname>" from one of my guest VMs (this command was executed on the host):

Code: Select all

$> VBoxManage guestproperty enumerate donald
Oracle VM VirtualBox Command Line Management Interface Version 3.2.10
(C) 2005-2010 Oracle Corporation
All rights reserved.

Name: /VirtualBox/HostGuest/SysprepExec, value: , timestamp: 1290219934758787000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepArgs, value: , timestamp: 1290219934758851000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/GuestAdd/Vbgl/Video/SavedMode, value: 1024x768x32, timestamp: 1290219983629457000, flags: 
Name: /VirtualBox/GuestInfo/OS/Product, value: Linux, timestamp: 1290219981673702000, flags: 
Name: /VirtualBox/GuestInfo/OS/Release, value: 2.6.27.21-0.1-default, timestamp: 1290219981684920000, flags: 
Name: /VirtualBox/GuestInfo/OS/Version, value: #1 SMP 2009-03-31 14:50:44 +0200, timestamp: 1290219981685209000, flags: 
Name: /VirtualBox/GuestAdd/Version, value: 3.2.8, timestamp: 1290219981685782000, flags: 
Name: /VirtualBox/GuestAdd/Revision, value: 64453, timestamp: 1290219981686099000, flags: 
Name: /VirtualBox/GuestAdd/HostVerLastChecked, value: 3.2.10, timestamp: 1290220020117815000, flags: 
Name: /VirtualBox/GuestInfo/OS/LoggedInUsers, value: 1, timestamp: 1290219991688487000, flags: 
Name: /VirtualBox/GuestInfo/OS/NoLoggedInUsers, value: false, timestamp: 1290219991688788000, flags: 
Name: /VirtualBox/HostInfo/GUI/LanguageID, value: C, timestamp: 1290219934401525000, flags: 
Name: /VirtualBox/HostInfo/VBoxVer, value: 3.2.10, timestamp: 1290219934759238000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxRev, value: 66523, timestamp: 1290219934759273000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/GuestInfo/OS/ServicePack, value: , timestamp: 1290219981685466000, flags: 
Name: /VirtualBox/GuestInfo/Net/0/V4/IP, value: 192.168.0.54, timestamp: 1290219981687481000, flags: 
Name: /VirtualBox/GuestInfo/Net/0/V4/Broadcast, value: 192.168.0.255, timestamp: 1290219981687749000, flags: 
Name: /VirtualBox/GuestInfo/Net/0/V4/Netmask, value: 255.255.255.0, timestamp: 1290219981688002000, flags: 
Name: /VirtualBox/GuestInfo/Net/0/MAC, value: 08002702ED29, timestamp: 1290219981688262000, flags: 
Name: /VirtualBox/GuestInfo/Net/0/Status, value: Up, timestamp: 1290219981688520000, flags: 
Name: /VirtualBox/GuestInfo/Net/Count, value: 1, timestamp: 1291172383484714000, flags: 
Name: /VirtualBox/GuestInfo/OS/LoggedInUsersList, value: xxxxxx, timestamp: 1290219991688052000, flags:
The IP related information is contained in the "Net" group of properties. To retrieve a specific value, use the "VBoxManage guestproperty get <vmname> <pattern> command.

Here is an example of the "VBoxManage guestproperty get <vmname> <pattern>" from one of my guest VMs (this command was executed on the host):

Code: Select all

$> VBoxManage guestproperty get donald "/VirtualBox/GuestInfo/Net/0/V4/IP"
Oracle VM VirtualBox Command Line Management Interface Version 3.2.10
(C) 2005-2010 Oracle Corporation
All rights reserved.

Value: 192.168.0.54
$>
From my testing, it seems the guest properties are only available if the guest VM has the Guest Additions installed.

Re: how to get IP of guest operating system?

Posted: 1. Dec 2010, 13:16
by mpack
My understanding is that IP address is not always assigned by VirtualBox. For example, in bridged networking the IP address might be assigned by your router or ISP. In all cases ipconfig/ifconfig gives you the correct result. I rather doubt that the "guestproperty" version will.

Re: how to get IP of guest operating system?

Posted: 4. May 2011, 20:09
by lucasrangit
Thanks for the tip. I use it in the following way to quickly SSH to my headless VM.

Code: Select all

ssh vm-user@`VBoxManage guestproperty get "vm-name" "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print $2 }'`

Re: how to get IP of guest operating system?

Posted: 11. Nov 2012, 05:33
by sos
Hmmm, tried everything suggested, but am wirelessly connected.

VBoxManage --nologo guestproperty get "name" /VirtualBox/GuestInfo/Net/1/V4/IP

Command does pull information, NIC 1, however, is shown as:

NIC 1: MAC: #############, Attachment: Bridged Interface 'en1: AirPort', Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none

and doesn't show an IP address.

Is there something else?

Thanks, in advance!

Re: how to get IP of guest operating system?

Posted: 13. Nov 2012, 10:53
by HR
quick: with default settings all guest servers will have 10.0.2.15 ... and the host (accessed from within the guest OS) will have 10.0.2.2 :)

Re: how to get IP of guest operating system?

Posted: 27. Dec 2014, 20:37
by colmsjo
None of the above worked for me on OS X. This did the job:

Code: Select all

#!/bin/bash
#
# Translate a MAC address fetched from VirtualBox into a IP address
#

if [  $# -lt 1 ]; then 
  echo -e "\nUsage:\n$0 [virtual machine] \n" 
  exit 1
fi

# Get a string of the form macaddress1=xxxxxxxxxxx
var1=$(VBoxManage showvminfo $1 --machinereadable |grep macaddress1)

# Asdign macaddress1 the MAC address as a value
eval $var1

# assign m the MAC address in lower case
m=$(echo ${macaddress1}|tr '[A-Z]' '[a-z]')

# This is the MAC address formatted with : and 0n translated into n
mymac=$(echo `expr ${m:0:2}`:`expr ${m:2:2}`:`expr ${m:4:2}`:`expr ${m:6:2}`:`expr ${m:8:2}`:`expr ${m:10:2}`)
echo "The MAC address of the virtual machine $1 is $mymac"

# Get known IP and MAC addresses
IFS=$'\n'; for line in $(arp -a); do 
#  echo $line
  IFS=' ' read -a array <<< $line
  ip=$(echo "${array[1]}"|tr "(" " "|tr ")" " ")

  if [ "$mymac" = "${array[3]}" ]; then
    echo "and the IP address is $ip"
  fi

done

Re: how to get IP of guest operating system?

Posted: 28. Dec 2014, 00:10
by socratis
Really? Because this is what I get on my OSX with 10.6.8 host and a Win8.1 guest with Guest Additions installed (yes, I have 4 NICs for the VM, with Host-Only, Internal, Bridged and NAT modes):
VBoxManage guestproperty enumerate "Windows 8.1" | grep IP
Name: /VirtualBox/GuestInfo/Net/0/V4/IP, value: 192.168.50.112, timestamp: 1419715494307514000, flags: 
Name: /VirtualBox/GuestInfo/Net/3/V4/IP, value: 10.0.5.15, timestamp: 1419715479292177000, flags: 
Name: /VirtualBox/GuestInfo/Net/2/V4/IP, value: 169.254.120.129, timestamp: 1419715468424772000, flags: 
Name: /VirtualBox/GuestInfo/Net/1/V4/IP, value: 192.168.100.117, timestamp: 1419715479291526000, flags:
However, I tested your script (actually just the 'arp -a' part) and I noticed that the 'arp -a' command gives only information about the 'Host-Only' and 'Bridged' modes of networking, but it has no clue about the 'Internal' or 'NAT' modes. So, your script may work only on the two out of four modes. Just something to keep in mind. Of course the other solution (guestproperty) does not work at all with VMs with no GAs, so it is definitely an improvement for those unfortunate guests without guest additions.

Re: how to get IP of guest operating system?

Posted: 27. Oct 2015, 16:53
by blaugrana
Hi guys,
I have Windows 7 host with Ubuntu 15 geust installed on my virtualbox with Bridge mode.
I ran the command listed above, but my output does not include any IP address section.
this is my output:

Code: Select all

C:\Program Files\Oracle\VirtualBox>VBoxManage guestproperty enumerate Ubuntu

Name: /VirtualBox/HostInfo/GUI/LanguageID, value: en_US, timestamp: 1445956299313457500, flags:
Name: /VirtualBox/HostInfo/VBoxVerExt, value: 5.0.8, timestamp: 1445956295369957501, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepExec, value: , timestamp: 1445956295369457500, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepArgs, value: , timestamp: 1445956295369457501, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxRev, value: 103449, timestamp: 1445956295369957502, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxVer, value: 5.0.8, timestamp: 1445956295369957500, flags: TRANSIENT, RDONLYGUEST
Is there any other way to get the IP of my guest in Bridge mode from my windows 7 host?

Re: how to get IP of guest operating system?

Posted: 8. Dec 2015, 20:11
by greg_christopherson
I am running windows 10 and ubuntu 15.10 on VirtualBox. I hit a dead end on this topic as well until I read some of the VirtualBox Documentation:

VirtualBox supports port forwarding. You can set up an IP address and port for VB to listen on and then forward any requests coming in to a IP address within the VB. So you can type in localhost:3000 (doesn't have to be 3000 can be any port other than 80) on the computer running the VB, and VB can forward that to a internal IP.
To configure Port Forwarding you can use the graphical Port Forwarding editor which can be found in the Network Settings dialog for Network Adaptors configured to use NAT. Here you can map host ports to guest ports to allow network traffic to be routed to a specific port in the guest. -- virtualbox(dot)org/manual/ch06.html (section 6.3.1)
The steps I took to do this:

1) Find out what the IP Address is of my windows local host. Find the hosts file here ( C:\Windows\System32\Drivers\etc ) replacing C: for whatever drive your system is on. Open and look near the bottom for something like:

Code: Select all

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
2) Find out what the IP Address is of the system running inside virtual box, by either looking in connection settings or using the "ipconfig" "ifconfig" commands posted by mpack.

3) In VirtualBox, open the settings for the profile you want to set up. Go to Network, expand the Advanced tab and click on Port Forwarding. Upper right, add new rule. Change name to whatever (I left as default) leave protocol as TCP, change Host IP to my Windows Localhost's IP, set Host Port to 3000 because reasons, Guest IP is set to the VB Systems IP and Guest Port was set to 3000 because that's the port rails was using.

Now when I have a server running inside the VB I can visit it by going to localhost:3000.

I hope this helps.

Re: how to get IP of guest operating system?

Posted: 28. Apr 2016, 02:25
by johnzoet
akki wrote:Hi All,

I have installed Virtual box on Mac and loaded Free BSD 8 on it. Previously I was using vmware that maintains the IP of guest operating system in ".leases" file.
Is there any some mechanism in Virtual box by which I can get the IP of guest free bsd operating system?

Please guide me.


-akki
You can get the IP directly in the guest OS with : ifconfig -a
However it depends on the networking mode if that IP address is of any use.
Assuming you want to connect from host to guest OS, then you should enable networking in Bridge mode.
To check that you can connect from host to guest run the Ping command.
In a shell on your host OS type: ping <ip-address-guest>
<ip-address-guest> = IP address as shown by your guest OS.

Re: how to get IP of guest operating system?

Posted: 19. May 2016, 10:43
by xg
hi,

I am installing VirtualBox 5.0 on my CentOS 7
I also installed Extension Pack, but I can not get IP of my guest VM even I followed some steps mentioned above.

Below is what I did

1. Host info
[root@localhost system]# uname -a
Linux localhost.localdomain 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost system]# cat /etc/*release*
CentOS Linux release 7.0.1406 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CentOS Linux release 7.0.1406 (Core)
CentOS Linux release 7.0.1406 (Core)
cpe:/o:centos:centos:7

2. Virtual Box info
[root@localhost system]# VBoxManage -v
5.0.20r106931
[root@localhost system]# VBoxManage list -l extpacks
Extension Packs: 1
Pack no. 0: Oracle VM VirtualBox Extension Pack
Version: 5.0.20
Revision: 106931
Edition:
Description: USB 2.0 and USB 3.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM, Disk Encryption.
VRDE Module: VBoxVRDP
Usable: true
Why unusable:

3. I used bridge mode, and my NIC get ip from company DHCP server

4. I run below command

[root@localhost system]# VBoxManage guestproperty enumerate c7_default_1463672643371_91396
Name: /VirtualBox/HostInfo/VBoxVerExt, value: 5.0.20, timestamp: 1463672644787510000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepExec, value: , timestamp: 1463672644787237000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostGuest/SysprepArgs, value: , timestamp: 1463672644787288000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxRev, value: 106931, timestamp: 1463672644787540000, flags: TRANSIENT, RDONLYGUEST
Name: /VirtualBox/HostInfo/VBoxVer, value: 5.0.20, timestamp: 1463672644787479000, flags: TRANSIENT, RDONLYGUEST

Could anyone support?
Thanks in advance!

Re: how to get IP of guest operating system?

Posted: 19. May 2016, 11:05
by socratis
You do not mention what your VM (c7_default_1463672643371_91396) is, but the "VBoxManage guestproperty enumerate" will not work if you do not have the Guest Additions (GAs) installed on the guest. It seems that you don't have the GAs installed. As I wrote quite some time ago:
socratis wrote:Of course the other solution (guestproperty) does not work at all with VMs with no GAs
Take a look at colmsjo's post and see for a solution that might work if you can't install the GAs.

Re: how to get IP of guest operating system?

Posted: 19. May 2016, 11:27
by xg
Really thanks your quick response.

1. My guest VM is CentOS too
2. Yes, I did not install Guest Additions.

I will try to install Guest Additions first. And later try again.
Thanks again!