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)); }
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); }
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); }