Example #1
0
 public static IPAddress GetExternalAddress()
 {
     try
     {
         if (LastChange < DateTime.Now)
         {
             if (IPFirstTime)
             {
                 IPFirstTime   = false;
                 CachedAddress = NAT.GetExternalIP();
             }
             else if (!IPThreadLock)
             {
                 IPThreadLock = true;
                 LastChange   = DateTime.Now.AddMinutes(2);
                 ThreadPool.QueueUserWorkItem((a) =>
                 {
                     CachedAddress = NAT.GetExternalIP();
                     IPThreadLock  = false;
                 });
             }
         }
     }
     catch (Exception)
     {
         return(null);
     }
     return(CachedAddress);
 }
Example #2
0
 public void getExternalIPwithPF()
 {
     try
     {
         externalIP = "Attempting automated port-fowarding...";
         try
         {
             if (NAT.Discover())
             {
                 Console.WriteLine("Attempting port foward");
                 NAT.ForwardPort(Multiplayer.PORT, ProtocolType.Tcp, "Hacknet (TCP)");
                 externalIP = NAT.GetExternalIP().ToString();
             }
             else
             {
                 ScreenManager.ShowPopup("You dont have UPNP enabled - Internet play will not work");
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex);
         }
         if (!externalIP.Equals("Attempting automated port-fowarding..."))
         {
             return;
         }
         externalIP = "Automated port-fowarding Failed - Internet Play Disabled";
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
         externalIP = "Automated port-fowarding Failed - Internet Play Disabled";
     }
 }