Need to know how to find VMS by IP or mac address in VMWare?
This guide is for you.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform VMWare related tasks.
In this context, we shall take a look at the process to find VMS by IP or mac address.
In the VMWare vSphere Client interface, we can search virtual machines by their names only. But in a few cases, it is necessary to find the specific VMWare virtual machine by its IP or MAC (NIC hardware) address.
Now you shall learn how to easily find the VMS using IP address.
From Virtual Machine Settings, we can find the MAC address. Then in the Network Section, we click the Advanced button and read the MAC address. After that, in the console, we execute: arp -a
C:\>arp -a
Interface: 10.98.79.23 --- 0xb
Internet Address Physical Address Type
10.98.79.10 b8-ac-6f-cb-a1-80 dynamic
10.98.79.12 78-2b-cb-aa-51-bf dynamic
Interface: 192.168.20.1 --- 0x1c
Internet Address Physical Address Type
192.168.10.120 00-0c-29-56-bd-36 dynamic
192.168.10.255 ff-ff-ff-ff-ff-ff static
In this case, the IP is 192.168.10.120.
It is easier to find specific VMWare virtual machines by using the VMWare PowerCLI that allows to search by different virtual machine parameters.
You can run the PowerCLI console and connect to the vCenter Server or ESXi host using the below command:
Connect-VIServer vcenter-hq.woshub.com -User administrator
In order to find a virtual machine by its MAC address, we use these commands:
$vmMAC="00:52:32:DD:12:91”
Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress –eq $vmMAC } | Select-Object Parent,Name,MacAddress
Also, we can search for a specific MAC address directly in the virtual machine configuration files (VMX) on the VMFS datastore. For that, simply connect to the ESXi host via SSH and run the below command:
find /vmfs/volumes | grep .vmx$ | while read i; do grep -i "00:52:32:DD:12:91" "$i" && echo "$i"; done
If we have VMWare Tools installed on the virtual machines, we search by the IP address of the guest operating system. Here is the command that we run to find a VM with the specific IP address;
$vmIP="192.168.1.102”
Get-VM * |where-object{$_.Guest.IPAddress -eq $vmIP}|select Name, VMHost, PowerState,GuestId,@{N="IP Address";E={@($_.guest.IPAddress[0])}}|ft
In case, if we only know a part of the IP address, then execute the following command:
$vmIP="192.168.”
Get-VM * |where-object{$_.Guest.IPAddress -match $vmIP}|select Name, VMHost, PowerState,@{N="IP Address";E={@($_.guest.IPAddress[0])}} ,@{N="OS";E={$_.Guest.OSFullName}},@{N="Hostname";E={$_.Guest.HostName}}|ft
This command will list the names and types of installed OS of all virtual machines whose IP addresses match this pattern.
This tutorial will guide you on how to easily find VMS by IP or mac address.