示例#1
0
		private void NatUtility_DeviceLost(object sender, Mono.Nat.DeviceEventArgs e)
		{
			//do port forwarding with UPNP
			Mono.Nat.INatDevice natd = e.Device;
			natd.DeletePortMap(new Mono.Nat.Mapping(Mono.Nat.Protocol.Tcp,GlobalVars.ServerPort,GlobalVars.ServerPort));
			natd.DeletePortMap(new Mono.Nat.Mapping(Mono.Nat.Protocol.Udp,GlobalVars.ServerPort,GlobalVars.ServerPort));
		}
示例#2
0
		private void NatUtility_DeviceFound(object sender, Mono.Nat.DeviceEventArgs e)
		{
			//do port forwarding with UPNP
			Mono.Nat.INatDevice natd = e.Device;
			natd.CreatePortMap(new Mono.Nat.Mapping(Mono.Nat.Protocol.Tcp,GlobalVars.ServerPort,GlobalVars.ServerPort));
			natd.CreatePortMap(new Mono.Nat.Mapping(Mono.Nat.Protocol.Udp,GlobalVars.ServerPort,GlobalVars.ServerPort));
			ConsolePrint("Port " + GlobalVars.ServerPort.ToString() + " registered to device " + natd.GetExternalIP().ToString(), 3);
			evNATdoneargs args = new evNATdoneargs();
			args.IP = natd.GetExternalIP().ToString();
			args.port = GlobalVars.ServerPort;
			evNATdone(this, args);
			//MessageBox.Show("NAT done! My public IP is " + IP);
		}
示例#3
0
        string GetExternalIPAddress()
        {
            string ipAddress;

            using (WebClient wc = new WebClient())
            {
                try
                {
                    Mono.Nat.INatDevice natd = e.Device;
                    ipAddress = natd.GetExternalIP().ToString();
                }
                catch (Exception)
                {
                    ipAddress = "localhost";
                }
            }

            return(ipAddress);
        }