protected internal bool isPortFound(int portNumber) { bool boolResult = false; INetFwOpenPorts ports = null; Type progID = null; INetFwMgr firewall = null; INetFwOpenPort currentPort = null; try { // TODO: aprire in pubblico e privato // ref: http://stackoverflow.com/questions/15409790/adding-an-application-firewall-rule-to-both-private-and-public-networks-via-win7 progID = Type.GetTypeFromProgID("HNetCfg.FwMgr"); firewall = Activator.CreateInstance(progID) as INetFwMgr; ports = firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts; IEnumerator portEnumerate = ports.GetEnumerator(); while ((portEnumerate.MoveNext())) { currentPort = portEnumerate.Current as INetFwOpenPort; if (currentPort.Port == portNumber) { boolResult = true; break; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (ports != null) { ports = null; } if (progID != null) { progID = null; } if (firewall != null) { firewall = null; } if (currentPort != null) { currentPort = null; } } return(boolResult); }
protected internal bool isPortFound(int portNumber) { bool boolResult = false; INetFwOpenPorts ports = null; Type progID = null; INetFwMgr firewall = null; INetFwOpenPort currentPort = null; try { progID = Type.GetTypeFromProgID("HNetCfg.FwMgr"); firewall = Activator.CreateInstance(progID) as INetFwMgr; ports = firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts; IEnumerator portEnumerate = ports.GetEnumerator(); while ((portEnumerate.MoveNext())) { currentPort = portEnumerate.Current as INetFwOpenPort; if (currentPort.Port == portNumber) { boolResult = true; break; } } } catch (Exception ex) { //MessageBox.Show(ex.Message); Console.Write(ex.Message); } finally { if (ports != null) { ports = null; } if (progID != null) { progID = null; } if (firewall != null) { firewall = null; } if (currentPort != null) { currentPort = null; } } return(boolResult); }
public static bool IsPortOpen(int port) { EnsureSetup(); Type progID = Type.GetTypeFromProgID("HNetCfg.FwMgr"); INetFwMgr firewall = Activator.CreateInstance(progID) as INetFwMgr; INetFwOpenPorts ports = firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts; IEnumerator portEnumerate = ports.GetEnumerator(); while ((portEnumerate.MoveNext())) { INetFwOpenPort currentPort = portEnumerate.Current as INetFwOpenPort; if (currentPort.Port == port) { return(true); } } return(false); }
private bool StartService(bool includeButtons) { Uri address = new Uri("http://localhost:" + portNumber + "/Mayhem"); MayhemService svc = new MayhemService(); svc.EventCalled += service_EventCalled; string insideDiv; string html = PhoneLayout.Instance.SerializeToHtml(includeButtons, out insideDiv); svc.SetHtml(html); svc.SetInsideDiv(insideDiv); host = new WebServiceHost(svc, address); // Enable Mex ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); smb.HttpGetEnabled = true; host.Description.Behaviors.Add(smb); WebHttpBinding binding = new WebHttpBinding(); binding.ReaderQuotas.MaxArrayLength = 2147483647; host.AddServiceEndpoint(typeof(IMayhemService), binding, string.Empty); bool portFound = false; Type netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); INetFwMgr mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); INetFwOpenPorts ports = mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts; System.Collections.IEnumerator enumerate = ports.GetEnumerator(); while (enumerate.MoveNext()) { INetFwOpenPort port = (INetFwOpenPort)enumerate.Current; if (port.Port == portNumber) { portFound = true; break; } } if (!portFound || !AclHelper.FindUrlPrefix("http://+:" + portNumber + "/")) { OpenServerHelper(); } try { host.Open(); } catch (Exception e) { isServiceRunning = false; Logger.WriteLine(e); ErrorLog.AddError(ErrorType.Failure, "Error starting Phone Remote service"); return(false); } isServiceRunning = true; Logger.WriteLine("Phone service started"); WebChannelFactory <IMayhemService> myChannelFactory = new WebChannelFactory <IMayhemService>(new Uri(address.ToString())); service = myChannelFactory.CreateChannel(); service.Html(false); return(true); }