Do not try to compare networking to computer hardware. While in some cases this could help, it is comparing apples to oranges and clearly in this case it is causing some confusion. I think it may be best to just give a simple example to show how they are used differently.
Let's say your computer (192.168.10.1) wants to talk to a host (10.1.1.10). In this case, 10.1.1.10 is the logical destination or address you are attempting to send traffic.
Your computer however has no idea about the MAC or physical address of this server, nor does it know how to get to the logical address. However it does have a default gateway and knows 10.1.1.10 is not on the local subnet. So it sends the traffic to the gateway router with the logical destination of 10.1.1.10 and the physical destination of the gateway router's interface.
This router, will see that the logical address of the traffic is bound for another host, and will look up where it needs to send this traffic which indicates router2 is the next hop. It then changes the physical destination to router2's interface and forwards the traffic.
Router2 is directly connected to the server using IP address 10.1.1.10, so it changes the physical destination to the MAC address of the server and again forwards the traffic.
There can be number of additional routers on the path, but all through the process the logical destination address stays the same while the physical destination changes. This is also true for source logical/physical addresses along the route.
This depends on what OS the VM's are running. If they're running Linux or some other UNIX variant you can use arping
to accomplish this. If they're running Windows (XP/7/8), whenever a new IP address is added to an interface, Windows will send gratuitous ARPs for that IP address for duplicate address detection by default, so you may be able to get the MAC address that way.
Best Answer
No, there is not.
MAC address are issued in blocks to network device builders and thats (usually) what you can infer from MAC addresses (who build the device), and thats all.
IP's on the other hand, can point to the general area where a computer may be connected to the internet.
Blocks of IPs are sold to Internet Service Providers and you can infer from the ISP where the device is connected to the internet.
There is something called a GeoIP database, that can correlate IP blocks (networks) to geografical locations. You might want to check with one.