Advertisement
Guest User

Untitled

a guest
Apr 11th, 2011
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.37 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Management;
  10.  
  11. namespace Static_NIC_Settings_Creator
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         private ManagementObjectCollection queryCollection;
  16.         private string[] networkInterfaces;
  17.         private int currentNIC;
  18.         private string[] ipAddress;
  19.         private string[] subnetMask;
  20.         private string[] defaultIPGateway;
  21.         private string[] dnsServerSearchOrder;
  22.  
  23.         public Form1()
  24.         {
  25.             InitializeComponent();
  26.             getNICs();
  27.         }
  28.  
  29.         private void convertButton_Click(object sender, EventArgs e)
  30.         {
  31.             if (networkInterfaces.Count() > 0)
  32.             {
  33.                 //Get current NIC settings
  34.                 if (!getNICSettings())
  35.                 {
  36.                     MessageBox.Show("Retrieving current NIC settings failed.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  37.                     return;
  38.                 }
  39.                 //Convert to static NIC settings
  40.                 if (!setNICStatic())
  41.                 {
  42.                     MessageBox.Show("Setting NIC settings to static failed.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  43.                     return;
  44.                 }
  45.             }
  46.         }
  47.  
  48.         private void nicSelecter_SelectedIndexChanged(object sender, EventArgs e)
  49.         {
  50.             currentNIC = nicSelecter.SelectedIndex;
  51.         }
  52.  
  53.         private void getNICs()
  54.         {
  55.             //Get NICS
  56.             ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
  57.             queryCollection = query.Get();
  58.             //Make nic string array
  59.             int i = queryCollection.Count;
  60.             networkInterfaces = new string[i];
  61.             //Fill nic string array
  62.             i = 0;
  63.             foreach (ManagementObject mo in queryCollection)
  64.             {
  65.                 networkInterfaces[i] = (String)mo["Description"];
  66.                 i++;
  67.             }
  68.             //Fill dropbox with arraylist-data
  69.             nicSelecter.DataSource = networkInterfaces;
  70.         }
  71.  
  72.         private Boolean getNICSettings()
  73.         {
  74.             //Get selected NIC
  75.             int i = 0;
  76.             foreach (ManagementObject mo in queryCollection)
  77.             {
  78.                 //Get settings for specific NIC
  79.                 if (i == currentNIC)
  80.                 {
  81.                     try
  82.                     {
  83.                         ipAddress = (String[])mo["IPAddress"];
  84.                         subnetMask = (String[])mo["IPSubnet"];
  85.                         defaultIPGateway = (String[])mo["DefaultIPGateway"];
  86.                         dnsServerSearchOrder = (String[])mo["DNSServerSearchOrder"];
  87.                         return true;
  88.                     }
  89.                     catch (Exception e)
  90.                     {
  91.                         System.Windows.Forms.MessageBox.Show(e.ToString(), "Critical: Unhandled error");
  92.                         return false;
  93.                     }
  94.                 }
  95.                 i++;
  96.             }
  97.             return false;
  98.         }
  99.  
  100.         private Boolean setNICStatic()
  101.         {
  102.             //Get selected NIC
  103.             int i = 0;
  104.             foreach (ManagementObject mo in queryCollection)
  105.             {
  106.                 //Get settings for specific NIC
  107.                 if (i == currentNIC)
  108.                 {
  109.                     try
  110.                     {
  111.                         //Set static IP and subnet mask
  112.                         ManagementBaseObject setIP;
  113.                         ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");
  114.                         newIP["IPAddress"] = ipAddress;
  115.                         newIP["SubnetMask"] = subnetMask;
  116.                         setIP = mo.InvokeMethod("EnableStatic", newIP, null);
  117.                         //Set default gateway
  118.                         ManagementBaseObject setGateway;
  119.                         ManagementBaseObject newGateway = mo.GetMethodParameters("SetGateways");
  120.                         newGateway["DefaultIPGateway"] = defaultIPGateway;
  121.                         newGateway["GatewayCostMetric"] = new int[] { 1 };
  122.                         setGateway = mo.InvokeMethod("SetGateways", newGateway, null);
  123.                         //Set dns servers
  124.                         ManagementBaseObject setDNS;
  125.                         ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
  126.                         newDNS["DNSServerSearchOrder"] = dnsServerSearchOrder;
  127.                         setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
  128.  
  129.                         System.Windows.Forms.MessageBox.Show("Setting NIC settings returned: " + setDNS);
  130.                         return true;
  131.                     }
  132.                     catch (Exception e)
  133.                     {
  134.                         System.Windows.Forms.MessageBox.Show(e.ToString(), "Critical: Unhandled error");
  135.                         return false;
  136.                     }
  137.                 }
  138.                 i++;
  139.             }
  140.             //No NICs
  141.             return false;
  142.         }
  143.  
  144. //End class
  145.     }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement