Reverse Address Resolution Protocol
Reverse Address Resolution Protocol (RARP) is a Link layer networking protocol used by a host computer to obtain its Internet Protocol (IPv4) address when it has available its link-layer address, such as an Ethernet address. RARP is described in Internet Engineering Task Force (IETF) publication RFC 903. It has been rendered obsolete by the Bootstrap Protocol (BOOTP) and the modern Dynamic Host Configuration Protocol (DHCP), which both support a much greater feature set than RARP.
RARP requires one or more server hosts to maintain a database of mappings from Link Layer address to protocol address. Media Access Control (MAC) addresses needed to be individually configured on the servers by an administrator. RARP was limited to serving IP addresses only.
Reverse ARP differs from the Inverse Address Resolution Protocol (InARP, RFC 2390), which is designed to locate the IP address associated with another host's MAC address. InARP is the complement of the Address Resolution Protocol used for the reverse lookup. RARP was only used for lookup of a host's own IP address.
Send RARP packet on windows
It is a common misunderstanding that when ARP returns the MAC address of a given IP address on the wire that RARP will return the IP address that belongs to a given MAC address on the wire. While ARP is a mandatory function of any TCP/IP stack, TCP/IP stacks won't respond to RARP requests.
RARP was designed as a simple IP address assignment protocol. It requires a RARP server on the LAN to work. In later years RARP was replaced by the much more powerfull BOOTP and DHCP protocols for host configuration.
You should have a look at WMI to solve your problem.