栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#实现一键换IP、重置DNS、网关及掩码的方法

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#实现一键换IP、重置DNS、网关及掩码的方法

本文实例实现了C#一键换IP、重置DNS、网关及掩码的功能,具体实现的功能为在程序界面窗口中设置ip地址和子网掩码,设置网关地址,设置DNS,并且在设置过程中程序将判断如果没有启用IP设置的网络设备则跳过,重置DNS为空,并开启DHCP。

主要功能代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;
namespace changeIP
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      ManagementbaseObject inPar = null;
      ManagementbaseObject outPar = null;
      ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
      ManagementObjectCollection moc = mc.GetInstances();
      foreach (ManagementObject mo in moc)
      {
 if (!(bool)mo["IPEnabled"])
   continue;
 //设置ip地址和子网掩码
 inPar = mo.GetMethodParameters("EnableStatic");
 string ip = "";
 ip = numericUpDown1.Value.ToString() + "." + numericUpDown2.Value.ToString() + "." + numericUpDown3.Value.ToString() + "." + numericUpDown4.Value.ToString();
 inPar["IPAddress"] = new string[] { ip };// 1.备用 2.IP

 string ym = "";
 ym = numericUpDown8.Value.ToString() + "." + numericUpDown7.Value.ToString() + "." + numericUpDown6.Value.ToString() + "." + numericUpDown5.Value.ToString();
 inPar["SubnetMask"] = new string[] { ym };
 outPar = mo.InvokeMethod("EnableStatic", inPar, null);
 //设置网关地址
 inPar = mo.GetMethodParameters("SetGateways");
 string wg = "";
 wg = numericUpDown12.Value.ToString() + "." + numericUpDown11.Value.ToString() + "." + numericUpDown10.Value.ToString() + "." + numericUpDown9.Value.ToString();
 inPar["DefaultIPGateway"] = new string[] { wg }; // 1.网关;2.备用网关
 outPar = mo.InvokeMethod("SetGateways", inPar, null);
 //设置DNS
 inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
 string dns1 = numericUpDown16.Value.ToString() + "." + numericUpDown15.Value.ToString() + "." + numericUpDown14.Value.ToString() + "." + numericUpDown13.Value.ToString();
 string dns2 = numericUpDown20.Value.ToString() + "." + numericUpDown19.Value.ToString() + "." + numericUpDown18.Value.ToString() + "." + numericUpDown17.Value.ToString();
 inPar["DNSServerSearchOrder"] = new string[] { dns1, dns2 }; // 1.DNS 2.备用DNS
 outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
 break;
      }
    }
    private void button2_Click(object sender, EventArgs e)
    {
      ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
      ManagementObjectCollection moc = wmi.GetInstances();
      foreach (ManagementObject mo in moc)
      {
 //如果没有启用IP设置的网络设备则跳过
 if (!(bool)mo["IPEnabled"])
   continue;
 //重置DNS为空
 mo.InvokeMethod("SetDNSServerSearchOrder", null);
 //开启DHCP
 mo.InvokeMethod("EnableDHCP", null);
      }
    }
    private void button3_Click(object sender, EventArgs e)
    {
      this.Close();
      this.Dispose();
    }
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
      switch (e.KeyCode)
      {
 case Keys.F2:
   button1_Click(sender, e);
   break;
 case Keys.F3:
   button2_Click(sender, e);
   break;
      }
    }
  }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/126374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号