C# implementation of RARP (Inverse ARP, actually)