It's exactly that: MAC addresses by design do not get passed across routers or VPNs (ARP protocol messages are not exchanged across). You can see this mentioned in this
"Getting IP and MAC address from behind a router" discussion.
We employ a few methods related to MAC address resolution as can be seen in the application:
- The ARP query method sends an ARP packet to the target device to resolve its MAC address directly. This doesn't work across routers.
- The NetBios query method sends a NetBios packet to the target device. If the target device responds to the request, the response will contain the MAC address of that device. This works across routers, but only with the PCs that support it - that the 5% MAC addresses you do see.
- The WMI query method connects to the WMI subsystem on the target computer and analyses the Win32_NetworkAdapterConfiguration class to find out its MAC address. This may work across router, but you would need to have access to the remote PCs WMI.
- The Router SNMP MIB query method. If your remote network's router supports SNMP, this can be configured to pull IP-to-MAC address mappings from that router.
Overall, I am afraid there isn't a simple way to discover MAC address in a non-local network. Method #1 doesn't work, method #2 works with few devices, and methods #3 and #4 may require some additional configuration.