private static async void DeviceFoundAsync(object sender, DeviceEventArgs e) { if (gatewayAddress.ToString() == e.Device.DeviceEndpoint.Address.ToString()) { NatUtility.StopDiscovery(); Mapping mapping = new Mapping(Protocol.Tcp, PORT, PORT); var mappingResult = await e.Device.CreatePortMapAsync(mapping); System.Console.WriteLine($"Server mapped to {mappingResult.PrivatePort} on router port {mappingResult.PublicPort}"); string hostName = Dns.GetHostName(); string myIp = Dns.GetHostEntry(hostName).AddressList[0].ToString(); var externalIp = await e.Device.GetExternalIPAsync(); gatewayDevice = e.Device; await Task.Run(() => { BackendManager.ServerPing(); }); } }