how to get IP of guest operating system?

This is for discussing general topics about how to use VirtualBox.
akki
Posts: 1
Joined: 30. Nov 2010, 11:32
Primary OS: Mac OS X Leopard
VBox Version: OSE other
Guest OSses: free bsd

how to get IP of guest operating system?

Post 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
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: how to get IP of guest operating system?

Post 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. 
joseph1962smith
Posts: 25
Joined: 16. Oct 2009, 21:27
Primary OS: openSUSE
VBox Version: PUEL
Guest OSses: openSUSE, Red Hat, CentOS, Solaris, Windows XP, Windows 7, Ubuntu, Mandriva

Re: how to get IP of guest operating system?

Post 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.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: how to get IP of guest operating system?

Post 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.
lucasrangit
Posts: 2
Joined: 4. May 2011, 20:06
Primary OS: Ubuntu other
VBox Version: PUEL
Guest OSses: Windows XP, Ubuntu

Re: how to get IP of guest operating system?

Post 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 }'`
sos
Posts: 1
Joined: 11. Nov 2012, 05:27

Re: how to get IP of guest operating system?

Post 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!
HR
Posts: 1
Joined: 13. Nov 2012, 10:47

Re: how to get IP of guest operating system?

Post 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 :)
colmsjo
Posts: 2
Joined: 27. Dec 2014, 20:35

Re: how to get IP of guest operating system?

Post 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
socratis
Site Moderator
Posts: 27330
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: how to get IP of guest operating system?

Post 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.
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
blaugrana
Posts: 1
Joined: 27. Oct 2015, 16:51

Re: how to get IP of guest operating system?

Post 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?
greg_christopherson
Posts: 1
Joined: 8. Dec 2015, 19:43

Re: how to get IP of guest operating system?

Post 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.
johnzoet
Posts: 2
Joined: 7. Feb 2014, 02:14

Re: how to get IP of guest operating system?

Post 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.
xg
Posts: 6
Joined: 28. Apr 2016, 11:24

Re: how to get IP of guest operating system?

Post 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!
socratis
Site Moderator
Posts: 27330
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: how to get IP of guest operating system?

Post 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.
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
xg
Posts: 6
Joined: 28. Apr 2016, 11:24

Re: how to get IP of guest operating system?

Post 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!
Post Reply