API Reference

class NatTest
    {
        public static void Main(string[] args)
        {
            new NatTest ();
        }

        public NatTest ()
        {
            NatUtility.DeviceFound += DeviceFound;
            NatUtility.DeviceLost += DeviceLost;

            NatUtility.StartDiscovery ();
            Console.ReadLine();
        }

        private void DeviceFound(object sender, DeviceEventArgs args)
        {
            INatDevice device = args.Device;

            // Create a mapping to forward external port 3000 to local port 1500
            device.CreatePortMap(new Mapping(Protocol.Tcp, 1500, 3000));

            // Retrieve the details for the port map for external port 3000
            Mapping m = device.GetSpecificMapping(Protocol.Tcp, 3000);

            // Get all the port mappings on the device and delete them
            foreach (Mapping mp in device.GetAllMappings())
                device.DeletePortMap(mp);

            // Get the external IP address
            IPAddress externalIP = device.GetExternalIP();
        }

        private void DeviceLost (object sender, DeviceEventArgs args)
        {
            INatDevice device = args.Device;

            Console.WriteLine ("Device Lost");
            Console.WriteLine ("Type: {0}", device.GetType().Name);
        }
    }