Link to home
Start Free TrialLog in
Avatar of Micheal_Male
Micheal_MaleFlag for Afghanistan

asked on

Hardware address client

If we all are in the same network then why cannot we get the MAC address of the client ?. NetworkInterface.getHardwareAddress gives the machine hardware address not the client which connects to the server. Anyone with any suggestions ?
Avatar of geowrian
geowrian
Flag of United States of America image

Even if you are on the same physical network, network policies and/or routing across subnets can make this (practically) impossible. As far as I'm aware, there is no "reliable" way to retrieve the MAC address of a remote network device short of having a way to send a command to a process running on the remote PC, or implementing discovery calls to the switch (i.e. via CDP for Cisco switches).

If within the same subnet and barring any network policies or configuration preventing it, you may be able to lookup the IP of the remote PC in the ARP table, then grab the MAC address from that. However, this is not guaranteed to work, and may actually give wrong information (i.e. if switching or routing is performed it may return the MAC of the switch/router).

http://my-addr.com/i/determine_mac_address_from_ip/lookup-ping-search/howto_find_remote_mac_address.php
Avatar of Micheal_Male

ASKER

Good article. That gives me an idea that it is impossible to get the MAC address of the client in java even it is connected on the same network. The only way is to run the Process Runtime.exec() command and give arp as a parameter and then compare the client ip with the ip we got from running the arp command in java and then parse the mac address.
ASKER CERTIFIED SOLUTION
Avatar of chataros
chataros

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thank you