private void scanNICs() { // Clear network interfaces if not empty already if (NIC_select.Items.Count > 0) { NIC_select.Items.Clear(); } foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { if (activeNICsCB.Checked && nic.OperationalStatus != OperationalStatus.Up) { continue; } ComboboxItem item = new ComboboxItem(); item.Text = nic.Description.ToString(); item.Value = nic; NIC_select.Items.Add(item); } // Restore selected NIC from settings if saved if (!string.IsNullOrEmpty(Settings.Default.NIC)) { NIC_select.SelectedIndex = NIC_select.FindStringExact(Settings.Default.NIC); } }
public MainMenu() { AutoUpdater.Start("https://www.tryallthethings.xyz/downloads/DNS-Swapper.xml"); InitializeComponent(); // Upgrade settings file (user.config in %LOCALAPPDATA%\DNS_Swapper from previous version Settings.Default.Upgrade(); // Load network interfaces scanNICs(); // Load previously saved user settings NIC_select.SelectedIndex = NIC_select.FindStringExact(Settings.Default.NIC); // Remove blank in IP-Address string DNS1_var = Settings.Default.DNS_1.Replace(" ", string.Empty); string DNS2_var = Settings.Default.DNS_2.Replace(" ", string.Empty); // Variables used for validated IP-Addresses IPAddress DNS1_IP = new IPAddress(new byte[] { 127, 0, 0, 1 }); IPAddress DNS2_IP = new IPAddress(new byte[] { 127, 0, 0, 1 }); if (string.IsNullOrEmpty(DNS1_var) || string.IsNullOrEmpty(DNS2_var)) { // No DNS servers configured MessageBox.Show("Tool not configured yet", "DNS-Swapper configuration missing", MessageBoxButtons.OK, MessageBoxIcon.Information); Show(); WindowState = FormWindowState.Normal; ShowInTaskbar = true; } else { // Validate configuration if (IPAddress.TryParse(DNS1_var, out DNS1_IP) && IPAddress.TryParse(DNS2_var, out DNS2_IP)) { // DNS server IPs valid // Set Loaded variables into settings text boxes DNS_1.Text = DNS1_var; DNS_2.Text = DNS2_var; // Set taskbar icon color if (NIC_select.SelectedItem != null && !string.IsNullOrEmpty(DNS_1.Text) && !string.IsNullOrEmpty(DNS_2.Text)) { if (NetworkManagement.getDNS(NIC_select.SelectedItem.ToString()).Equals(DNS1_IP)) { taskBarIcon.Icon = Resource1.icon_red; changeToggleBtnPosition(false); } else if (NetworkManagement.getDNS(NIC_select.SelectedItem.ToString()).Equals(DNS2_IP)) { taskBarIcon.Icon = Resource1.icon_blue; changeToggleBtnPosition(true); } } } else { // DNS server IP(s) invalid - display error message MessageBox.Show("Invalid configuration detected. Resetting settings to default", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); resetToolStripMenuItem_Click(null, null); saveSettings(); Show(); WindowState = FormWindowState.Normal; ShowInTaskbar = true; } } }