Ejemplo n.º 1
0
        public InterfaceController(InterfaceSelectionViewModel v, IMessageService m)
        {
            vm            = v;
            message       = m;
            vm.Interfaces = new BindingList <NetInterface>();

            IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

            foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {
                if (nic.OperationalStatus == OperationalStatus.Up && nic.Supports(NetworkInterfaceComponent.IPv4))
                {
                    var i = new NetInterface {
                        Description = nic.Description, Name = nic.Name, Speed = nic.Speed
                    };
                    IPInterfaceProperties ipProps = nic.GetIPProperties();

                    foreach (UnicastIPAddressInformation address in ipProps.UnicastAddresses)
                    {
                        if (address.Address.AddressFamily == AddressFamily.InterNetwork &&
                            localIPs.Contains(address.Address) &&
                            !IPAddress.IsLoopback(address.Address))
                        {
                            i.Address = address.Address;
                            vm.Interfaces.Add(i);
                            break;
                        }
                    }
                }
            }

            //Select primary interface.  Just go with the lowest
            foreach (IPAddress t in localIPs)
            {
                vm.SelectedInterface = vm.Interfaces.Where(s => Equals(s.Address, t)).FirstOrDefault();
                if (null != vm.SelectedInterface)
                {
                    break;
                }
            }

            vm.Quit   = new DelegateCommand(Quit);
            vm.Select = new DelegateCommand(Select);
        }
Ejemplo n.º 2
0
        public InterfaceController(InterfaceSelectionViewModel v, IMessageService m)
        {
            vm = v;
            message = m;
            vm.Interfaces = new BindingList<NetInterface>();

            IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

            foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {
                if (nic.OperationalStatus == OperationalStatus.Up && nic.Supports(NetworkInterfaceComponent.IPv4))
                {
                    var i = new NetInterface {Description = nic.Description, Name = nic.Name, Speed = nic.Speed};
                    IPInterfaceProperties ipProps = nic.GetIPProperties();

                    foreach (UnicastIPAddressInformation address in ipProps.UnicastAddresses)
                    {
                        if (address.Address.AddressFamily == AddressFamily.InterNetwork &&
                            localIPs.Contains(address.Address) &&
                            !IPAddress.IsLoopback(address.Address))
                        {
                            i.Address = address.Address;
                            vm.Interfaces.Add(i);
                            break;
                        }
                    }
                }
            }

            //Select primary interface.  Just go with the lowest
            foreach (IPAddress t in localIPs)
            {
                vm.SelectedInterface = vm.Interfaces.Where(s => Equals(s.Address, t)).FirstOrDefault();
                if (null != vm.SelectedInterface)
                    break;
            }

            vm.Quit = new DelegateCommand(Quit);
            vm.Select = new DelegateCommand(Select);
        }