On Mon, 25 Aug 2014 14:06:44 -0700 (PDT)
Note two things:
* ARP table has (tweakable) expiration policy.
If memory serves me right, the default TTL for its entries is
something around 1.5 minutes.
After that time, the entry for the IP address of interest will be
removed and not reappear there until another ARP request for that
IP address is issued and the reply for it is received.
* ARP serves to glue the link layer (say, Ethernet) with the transport
layer (IP), and the link layer typically "exists" "just between"
two endpoints exchanging the transport layer's traffic.
What this means for you, is that on an Ethernet network which uses
switches (and this is just about any such network of a sensible size)
you won't ever see the MAC addresses of your peers with which you're
exchanging messages via that switch. These entries will be in the
ARP table of the switch itself.
If the latter point is not your case (you're certain that you're
exchaning traffic with your peer directly), it seems, the only way to
go, suggested by Jean-Alexandre Peyroux, is to use packet sniffing
while exchanging normal traffic with the host and then correlate what
was captured with what you were exchanging.
Raw sockets are too high-level and won't allow you reach for link-layer.