IP配置程序的设计与实现

  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.Threading.Tasks;
  9 using System.Windows.Forms;
 10 
 11 using System.Management;
 12 using System.IO;
 13 using System.Net.NetworkInformation;
 14 using System.Net;
 15 
 16 namespace Ip
 17 {
 18     public partial class Form1 : Form
 19     {
 20         public Form1()
 21         {
 22             InitializeComponent();
 23             // 获取本地计算机所有网卡信息
 24             string carName = "";
 25             ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM Win32_NetWorkAdapterConfiguration");
 26             foreach (ManagementObject sear in search.Get())
 27             {
 28                 if (sear["IPAddress"] != null)
 29                 {
 30                     carName = sear["Description"].ToString().Trim();
 31                     comboBox1.Items.Add(carName);
 32                 }
 33             }
 34             comboBox1.SelectedIndex = 0;
 35         }
 36 
 37         private void button1_Click(object sender, EventArgs e)
 38         {
 39 
 40             ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
 41             ManagementObjectCollection moc = mc.GetInstances();
 42             foreach (ManagementObject mo in moc)
 43             {
 44 
 45                 if ((bool)mo["IPEnabled"])
 46                 {
 47 
 48                   if (mo["Description"].ToString() == comboBox1.SelectedItem.ToString().Trim() )
 49                     {
 50 
 51                         //获取IP
 52                         string IpAddress = "";
 53                         System.Array ar;
 54                         ar = (System.Array)(mo.Properties["IpAddress"].Value);
 55                         IpAddress = ar.GetValue(0).ToString();
 56                         textBox1.Text = IpAddress;
 57                         //获取子网掩码
 58                         string IPSubnet = "";
 59                         ar = (System.Array)(mo.Properties["IPSubnet"].Value);
 60                         IPSubnet = ar.GetValue(0).ToString();
 61                         textBox2.Text = IPSubnet;
 62 
 63                         //获取网关
 64                         string DefaultIPGateway = "";
 65                         ar = (System.Array)(mo.Properties["DefaultIPGateway"].Value);
 66                         if (ar != null)
 67                             DefaultIPGateway = ar.GetValue(0).ToString();
 68                         textBox3.Text = DefaultIPGateway;
 69                         //获取DNS
 70                         string DNSServerSearchOrder1 = "";
 71                         string DNSServerSearchOrder2 = "";
 72                         ar = (System.Array)(mo.Properties["DNSServerSearchOrder"].Value);
 73                         if (ar != null)
 74                         {
 75                             DNSServerSearchOrder1 = ar.GetValue(0).ToString();
 76                             DNSServerSearchOrder2 = ar.GetValue(1).ToString();
 77                         }
 78                         textBox4.Text = DNSServerSearchOrder1;
 79                         textBox5.Text = DNSServerSearchOrder2;
 80 
 81                         MessageBox.Show(comboBox1.SelectedItem.ToString() + "自动获取成功!");
 82 
 83                     }
 84 
 85 
 86                 }
 87             }
 88 
 89         }
 90 
 91         private void button2_Click(object sender, EventArgs e)
 92         {
 93             ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
 94             ManagementObjectCollection moc = mc.GetInstances();
 95             foreach (ManagementObject mo in moc)
 96             {
 97                 if ((bool)mo["IPEnabled"])
 98                 {
 99                     if (mo["Description"].ToString() == comboBox1.SelectedItem.ToString().Trim() )
100                     {
101                         ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");
102                         ManagementBaseObject newGateway = mo.GetMethodParameters("SetGateways");
103                         ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
104 
105                         // 将要修改的目标 IP 地址
106                         //   string selectNewIP;
107                         string IPStr = "";
108                         string[] IPPart = textBox1.Text.Split('.');
109                        if(IPPart.Length == 4)
110                         {
111                             for (int i = 0; i <= 3; i++)
112                             {
113                                 //删除尾部首部的空格
114                                 IPStr += (IPPart[i].Trim() + ".");
115                             }
116                             IPStr = IPStr.Substring(0, IPStr.Length - 1);
117                         }
118                         newIP["IPAddress"] = new string[] { IPStr };
119 
120                         //设置子网掩码
121                         string subStr = "";
122                         string[] subPart =textBox2.Text.Split('.');
123                         if(subPart.Length == 4)
124                         {
125                             for (int i = 0; i <= 3; i++)
126                             {
127                                 //删除尾部首部的空格
128                                 subStr += (subPart[i].Trim() + ".");
129                             }
130                             subStr = subStr.Substring(0, subStr.Length - 1);
131                         }
132                         
133                         newIP["SubnetMask"] = new string[] { subStr };
134 
135                         //设置网关地址
136                         string gatStr = "";
137                         string[] gatPart = textBox3.Text.Split('.');
138                         if(gatPart.Length == 4)
139                         {
140                             for (int i = 0; i <= 3; i++)
141                             {
142                                 gatStr += (gatPart[i].Trim() + ".");
143                             }
144                             gatStr = gatStr.Substring(0, gatStr.Length - 1);
145                         }
146                             
147                         newGateway["DefaultIPGateway"] = new string[] { gatStr };
148                         // 将要修改的目标 DNS 首选地址
149                         string dnsStr1 = "";
150                         string dnsStr2 = "";
151                            
152                         string[] dnsPart1 = textBox4.Text.Split('.');
153                         if(dnsPart1.Length == 4)
154                         {
155                             for (int i = 0; i <= 3; i++)
156                             {
157                                 dnsStr1 += (dnsPart1[i].Trim() + ".");
158                             }
159                             dnsStr1 = dnsStr1.Substring(0, dnsStr1.Length - 1);
160                         }
161                         // 将要修改的目标 DNS 备用地址      
162                         string[] dnsPart2 = textBox5.Text.Split('.');
163                         if( dnsPart2.Length == 4)
164                         {
165                             for (int i = 0; i <= 3; i++)
166                             {
167                                 dnsStr2 += (dnsPart2[i].Trim() + ".");
168                             }
169                             dnsStr2 = dnsStr2.Substring(0, dnsStr2.Length - 1);
170                         }
171                       
172                         newDNS["DNSServerSearchOrder"] = new string[] { dnsStr1, dnsStr2 };
173 
174                         // 修改网络设置
175                         try
176                         {
177                             ManagementBaseObject setIP = mo.InvokeMethod("EnableStatic", newIP, null);
178                             ManagementBaseObject setGateways = mo.InvokeMethod("SetGateways", newGateway, null);
179                             ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
180 
181                             MessageBox.Show("设置成功");
182                         }
183                         catch (Exception ex)
184                         {
185                             MessageBox.Show(ex.Message);
186                         }
187                         break;
188                     }
189                 }
190             }
191         }
192 
193   
194 
195         private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
196         {
197             textBox1.Text = null;
198             textBox2.Text = null;
199             textBox3.Text = null;
200             textBox4.Text = null;
201             textBox5.Text = null;
202         }
203     }
204 }
View Code

 

原文地址:https://www.cnblogs.com/hcl6/p/15767144.html