LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

用C#实现对本机IP地址的设置

admin
2021年5月21日 9:45 本文热度 4980

IP设置程序程序需要使用到WMI,因此首先添加对WMI的引用,打开【解决方案资源管理器】,在【引用】项上单击右键,并选择【添加引用】菜单项,有需要的可以拿用,程序界面如图:


这里用到一类MaskedTextBox控件,具体使用大家可以百度一下,这里便不多说。源代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Management;

using System.IO;


namespace IPSet

{

    public partial class FrmIPset : Form

    {

        public FrmIPset()

        {

            InitializeComponent();

            // 获取本地计算机所有网卡信息

            string carName = "";

            ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM Win32_NetWorkAdapterConfiguration");

            foreach (ManagementObject sear in search.Get())

            {

                if (sear["IPAddress"] != null)

                {

                    carName = sear["Description"].ToString().Trim();

                    comboBox1.Items.Add(carName);

                }

            }

            comboBox1.SelectedIndex = 0;

        }

        private void button1_Click(object sender, EventArgs e)

        {

            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

            ManagementObjectCollection moc = mc.GetInstances();

            foreach (ManagementObject mo in moc)

            {

                if ((bool)mo["IPEnabled"])

                {

                    if (mo["Description"].ToString() == comboBox1.SelectedItem.ToString().Trim())

                    {

                        ManagementBaseObject newIP =mo.GetMethodParameters("EnableStatic");

                        ManagementBaseObject newGateway =mo.GetMethodParameters("SetGateways");

                        ManagementBaseObject newDNS =mo.GetMethodParameters("SetDNSServerSearchOrder");

                        // 将要修改的目标 IP 地址

                     //   string selectNewIP;

                        string IPStr = "";

                        string[] IPPart = maskedTextBox1.Text.Split('.');

                        for (int i = 0; i <= 3;i++ )

                        {

                            //删除尾部首部的空格

                            IPStr+=(IPPart[i].Trim()+".");

                        }

                        IPStr = IPStr.Substring(0,IPStr.Length-1);

                        newIP["IPAddress"] = new string[] { IPStr };


                        //设置子网掩码

                         string subStr = "";

                         string[] subPart = mtxtSubNetwork.Text.Split('.');

                         for (int i = 0; i <= 3; i++)

                         {

                             //删除尾部首部的空格

                             subStr += (subPart[i].Trim() + ".");

                         }

                         subStr = subStr.Substring(0, subStr.Length - 1);

                         newIP["SubnetMask"] = new string[] { subStr };


                         //设置网关地址

                         string gatStr = "";

                         string[] gatPart = mtxtGateway.Text.Split('.');

                         for (int i = 0; i <= 3; i++)

                         {

                             gatStr += (gatPart[i].Trim() + ".");

                         }

                         gatStr = gatStr.Substring(0, gatStr.Length - 1);

                         newGateway["DefaultIPGateway"] = new string[] { gatStr };

                         // 将要修改的目标 DNS 首选地址

                         string dnsStr1 = "";

                         string[] dnsPart1 = mtxtDNS1.Text.Split('.');

                         for (int i = 0; i <= 3; i++)

                         {

                             dnsStr1 += (dnsPart1[i].Trim() + ".");

                         }

                         dnsStr1 = dnsStr1.Substring(0, dnsStr1.Length - 1);

                         // 将要修改的目标 DNS 备用地址

                         string dnsStr2 = "";

                         string[] dnsPart2 = mtxtDNS2.Text.Split('.');

                         for (int i = 0; i <= 3; i++)

                         {

                             dnsStr2 += (dnsPart2[i].Trim() + ".");

                         }

                         dnsStr2 = dnsStr2.Substring(0, dnsStr2.Length - 1);

                         newDNS["DNSServerSearchOrder"] = new string[] { dnsStr1, dnsStr2 };

                         // 修改网络设置

                         try

                         {

                             ManagementBaseObject setIP = mo.InvokeMethod("EnableStatic", newIP, null);

                             ManagementBaseObject setGateways = mo.InvokeMethod("SetGateways", newGateway, null);

                             ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);

                             MessageBox.Show("设置成功");

                         }

                         catch (Exception ex)

                         {

                             MessageBox.Show(ex .Message);

                         }

                         break;

                    }

                }

            }

        }


        private void button2_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }

        //使能修改按键

        private void maskedTextBox1_TextChanged(object sender, EventArgs e)

        {

            button1.Enabled = true;

        }

        //自动获取

        private void button3_Click(object sender, EventArgs e)

        {

            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

            ManagementObjectCollection moc = mc.GetInstances();

            foreach (ManagementObject mo in moc)

            {

                if ((bool)mo["IPEnabled"])

                {

                    if (mo["Description"].ToString() == comboBox1.SelectedItem.ToString().Trim())

                    {

                        //重置DNS为空

                        mo.InvokeMethod("SetDNSServerSearchOrder", null);

                        //开启DHCP

                        mo.InvokeMethod("EnableDHCP", null);

                        MessageBox.Show("自动获取IP成功!");

                        break;

                    }

                }

            }

        }

    }

}


该文章在 2021/5/21 9:46:47 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved