• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现一键换IP、重置DNS、网关及掩码的方法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了ip 子网掩码 网关 dns,网关 子网掩码 dns,ip 掩码 网关 dns,ip 子网掩码 网关,ip地址子网掩码网关等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例实现了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;
      }
    }
  }
}
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-28C#华氏温度和摄氏温度相互转换的方法
  • 2017-05-28C#后台创建控件并获取值的方法
  • 2017-05-28c#序列化详解示例
  • 2017-05-28C#往线程里传递参数的方法小结
  • 2017-05-28C#中DataTable导出为HTML格式的方法
  • 2017-05-28C#检测是否有危险字符的SQL字符串过滤方法
  • 2017-05-28DOTNETBAR制作圆角窗体和圆角控件代码实例
  • 2017-05-28C#中csv文件与DataTable互相导入处理实例解析
  • 2017-05-28C#实现的字符串相似度对比类
  • 2017-05-28浅谈C#多线程简单例子讲解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#操作mysql数据库的代码实例
    • C#实现简单合并word文档的方法
    • c#之利用API函数实现动画窗体的方法详解
    • C#多线程学习之(一)多线程的相关概念分析
    • C#连接mariadb(MYSQL分支)代码示例分享
    • 通过VS中的数据源选择对话框简单实现数据库连接配置[图]
    • 深入解析C#编程中struct所定义的结构
    • C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序
    • winform树形菜单无限级分类实例
    • C#判断三角形的类型

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有