Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }