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;
      }
    }
  }
}
(0)

相关推荐

  • winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例

    1.  添加程序集 2.  引入命名空间 using System.Management; 3.  方法 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection nics = mc.GetInstances(); foreach (ManagementObject nic in nics) { if (Convert.ToBoole

  • C#设置本地网络如DNS、网关、子网掩码、IP等等

    如今网络在我们的生活工作中所起的作用越来越大,可以说离开了网络我们就无法正常的工作和生活.作为程序员我们写的程序大多数也会跟网络相关,而想要使用网络首先要将机器的网络配置设置好.而手动设置的方法显然很不可取,所以我们要让程序帮我们完成.下面是一个很常用的C#设置系统各种网络参数的一个小Demo一起看看吧. 这个Demo是通过"Win32_NetworkAdapterConfiguration"这个管理类.这里面已基本包括了IP,DNS,网关的设置信息. 在C#中使用WMI还是比较简单的

  • C++实现获取IP、子网掩码、网关、DNS等本机网络参数的方法

    本文以一个完整实例形式介绍了C++实现获取IP.子网掩码.网关.DNS等本机网络参数的方法,供大家参考,具体的完整实例如下: #pragma comment(lib,"Ws2_32.lib") #include <Iphlpapi.h> #pragma comment(lib, "Iphlpapi.lib") using namespace std; typedef struct tagNetworkCfg { char szIP[18]; char s

  • 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; us

  • Win7+xp命令行 一键修改IP、DNS

    经常往返于实验室的同学一定常会遇到一个问题: 宿舍的路由器一般是自动获取IP, 但是实验室里面一般是静态IP. 每次往返,每天就要修改,很麻烦. 这里提供了一个简便方法:(该方法为Win7下的,XP下的见最后一行) 第一步:新建一个txt文件 第二步:在文件中添加如下内容: netsh interface ip set address name="本地连接" source=static addr=10.60.37.99 mask=255.255.255.0gateway=10.60.3

  • 批处理、VBS实现自动设置IP、默认网关、DNS、WINS、IE代理(全)

    因为公司有同事负责大连.沈阳两个城市,经常在两地来回走动,到每个城市后,都要自己手动更改相应的网络配置,况且到外地时住的是酒店, 酒店上网是自动获得IP,又要将网络设置取消,真的很麻烦!于是想起写一个批处理!来解决这个问题!主要用到的命令是netsh. -.第一种方法是将两地的网络配置先进行本机设置,然后再导出,等用到的时候,再分别导入. 1.将现有的配置导出到d:\dalian.txt中: netsh –c interface dump > d:\dalian.txt 2.将之前导出的d:\d

  • 计算机名DNS网关IP(大家可以用来学习)

    @echo off :main cls echo. echo. echo 1.生成自动配置计算机名,DNS,网关,IP脚本,IPX内部网络号 echo. echo 2.网刻服务器自动配置 echo. echo 3.电信网通线路切换生成器 echo. echo 4.退出脚本 echo. echo 请输入1,2,3或4,输入其他字符,后果自负. :restart1 set /p select=请输入: set /a select=%select%-0 if %select%==1 goto ipdn

  • Centos下IP与DNS设置方法详解

    本文较为详细的讲述了Centos下IP与DNS设置方法.分享给大家供大家参考,具体如下: 1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserver 8.8.4.4 #google域名服务器 2.CentOS 修改网关 修改对应网卡的网关的配置文件 [root@centos]# vi /etc/sysconfig/network 修改以下内容 NETW

  • JS验证IP,子网掩码,网关和MAC的方法

    本文实例讲述了JS验证IP,子网掩码,网关和MAC的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &

  • Linux下修改IP、DNS和路由命令行配置方法

    一.快速修改,重启后设置就没了 ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up route add default gw 192.168.1.2 二.修改配置文件,重启设置还在 (一)ubuntu 版本命令行设置静态IP 修改 /etc/network/interfaces # This filedescribes the networ k interfaces available onyour system # and how toact

  • Linux虚拟机修改ip地址,查看网关,网络环境配置的教程

    修改虚拟机的ip地址: 进入如下界面,直接修改子网ip即可. 查看网关: Linux网络环境配置: 第一种方式(自动获取): 说明:登陆后,通过界面来设置自动获取ip 我们先进入设置: 把自动连接勾上然后点应用.之后每次启动系统的时候就可以自动连接网络了. 特点:Linux启动后会自动获取ip,缺点是每次自动获取的ip地址可能不一样,这种方法不适用于做服务器,因为我们服务器的ip需要实时固定. 第二种方法:(指定固顶的ip) 说明: 直接修改配置文件来指定ip,并可以链接到外网(程序员推荐),编

  • js实现一键换肤效果

    本文实例为大家分享了js实现一键换肤效果的具体代码,供大家参考,具体内容如下 方法1 <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <meta http-equiv="X-UA-Compatible" content="IE=edge">   <meta name="

  • spring boot使用拦截器修改请求URL域名 换 IP 访问的方法

    目录 Interceptor 介绍 Interceptor 作用 自定义 Interceptor 案例1 :域名换IP访问 案例2: erverWebExchange通过拦截器修改请求url 案例3: 将请求路径中/idea都去掉 案例4: SpringBoot 利用过滤器Filter修改请求url地址 案例5.拦截器: WebMvcConfigurerAdapter拦截器 结语 Interceptor 介绍 拦截器(Interceptor)同 Filter 过滤器一样,它俩都是面向切面编程——

随机推荐