IP切换器源码

这个IP切换器的源码是我自己小学期的时候写的,有些代码是直接网上复制改的,所以对你们有没有作用,就看你们的造化了大笑


界面也没有进行优化过,所以不要介意偷笑


Form1代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;
using System.Net.NetworkInformation;
using System.Text.RegularExpressions;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace IP切换器
{
    public partial class Form1 : Form
    {

        string path = "..\\..\\ip.txt";             //才用相对路径,这样可以减少对电脑的依赖性
        public Form1()
        {
            InitializeComponent();
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            WindowsBtn.Checked = true;
            //loadConfig();
            GetName();
            GetMAC();
            ReadClass();
            GetIP();

        }
        #region


        //获取网卡物理地址
        //这个只能获取一个网卡的信息即有线网卡的信息,所以不行
        //public string getMacAddr_Local()
        //{
        //    string madAddr = null;
        //    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

        //    //GetInstances 例证法
        //    ManagementObjectCollection moc2 = mc.GetInstances();
        //    foreach (ManagementObject mo in moc2)
        //    {
        //        if (Convert.ToBoolean(mo["IPEnabled"]) == true)
        //        {
        //            madAddr = mo["MacAddress"].ToString();
        //            madAddr = madAddr.Replace(':', '-');
        //        }
        //        mo.Dispose();

        //    }

        //    return madAddr;
        //}
        #endregion


        //自动获取IP地址(DHCP)
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                //ip
                IPtxt.Enabled = false;
                //子网掩码
                SubnetMasktxt.Enabled = false;
                //默认网关
                AcquiesceGatewaytxt.Enabled = false;
            }
            else
            {
                //ip
                IPtxt.Enabled = true;
                //子网掩码
                SubnetMasktxt.Enabled = true;
                //默认网关
                AcquiesceGatewaytxt.Enabled = true;
            }

        }



        //自动获取DNS服务器
        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked == true)
            {
                checkBox1.Checked = true;
                //主DNS
                FirstDNStxt.Enabled = false;
                //备用DNS
                SpareDNStxt.Enabled = false;
            }
            else
            {
                //主DNS
                FirstDNStxt.Enabled = true;
                //备用DNS
                SpareDNStxt.Enabled = true;
            }

        }



        #region   获得IP,子网掩码,默认网关,DNS1,DNS2等信息
        public void GetIP()
        {
            //这些都是system.net的方法
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

            int index = 0;

            foreach (NetworkInterface adapter in adapters)
            {
                index++;
                string IPName = comboBox1.Text;
                List<string> DNS = new List<string>();
                if (IPName == adapter.Name)
                {
                    获取IPInterfaceProperties实例 

                    IPInterfaceProperties adapterProperties = adapter.GetIPProperties();

                    //获取并显示DNS服务器IP地址信息   
                    IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
                    if (dnsServers.Count > 0)
                    {
                        foreach (IPAddress dns in dnsServers)
                        {
                            DNS.Add(dns.ToString());
                        }
                    }
                    else
                    {
                        DNS.Add("");
                    }

                    //判断DNS的格式,因为有时候出现错误的格式
                    if (IsIpaddress(DNS[0]))
                        FirstDNStxt.Text = DNS[0];
                    else
                        FirstDNStxt.Text = "";
                    if (DNS.Count > 1)                   //判断DNS的数值,DNS不一定有两个
                        if (IsIpaddress(DNS[1]))
                            SpareDNStxt.Text = DNS[1];
                        else
                            SpareDNStxt.Text = "";
                    else
                        SpareDNStxt.Text = "";


                    //等待获取默认网关
                    GatewayIPAddressInformationCollection addresses = adapterProperties.GatewayAddresses;
                    if (addresses.Count > 0)
                    {

                        foreach (GatewayIPAddressInformation address in addresses)
                        {
                            AcquiesceGatewaytxt.Text = address.Address.ToString();
                        }

                    }
                    //获取以太网卡网络接口信息

                    //获取单播地址集
                    UnicastIPAddressInformationCollection ipCollection = adapterProperties.UnicastAddresses;
                    foreach (UnicastIPAddressInformation ipadd in ipCollection)
                    {
                        //InterNetwork    IPV4地址      InterNetworkV6        IPV6地址
                        //Max            MAX 位址
                        if (ipadd.Address.AddressFamily == AddressFamily.InterNetwork)
                            //判断是否为ipv4
                            IPtxt.Text = ipadd.Address.ToString();//获取ip
                        if (ipadd.IPv4Mask.ToString() != "0.0.0.0")
                            SubnetMasktxt.Text = ipadd.IPv4Mask.ToString();

                    }
                }
            }
        }


        //获取名称
        public void GetName()
        {
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

            List<string> st = new List<string>();
            int index = 0;

            foreach (NetworkInterface adapter in adapters)
            {
                index++;
                //显示网络适配器描述信息、名称、ID
                bool adaptername = adapter.Name.Contains('本');
                if (adapter.Name == "以太网" || adapter.Name == "WLAN" || adaptername)
                    st.Add(adapter.Name);

            }
            comboBox1.DataSource = st;
        }

        //获取MAC
        public void GetMAC()
        {
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
            string IPName = comboBox1.Text;
            int index = 0;

            foreach (NetworkInterface adapter in adapters)
            {
                index++;
                //显示网络适配器描述信息、名称、ID
                if (IPName == adapter.Name)
                {
                    //调用自己写的方法ConvertMacAddress
                    //将我们的字符串转成我们应该看到的标准格式
                    string MAC = ConvertMacAddress(adapter.GetPhysicalAddress().ToString(), '-');
                    Physicstxt.Text = MAC;
                    
                }
               
            }
        }
        #endregion

        /// <summary>
        /// 从180373AE380D转化为18-03-73-AE-38-0D
        /// </summary>
        /// <param name="_macAddress"></param>
        /// <returns></returns>
        public static string ConvertMacAddress(string _macAddress, char _spliter)
        {
            string targetMacAddress = string.Empty;
            for (int i = 0; i < _macAddress.Length; i = i + 2)
            {
                targetMacAddress = targetMacAddress + _macAddress.Substring(i, 2);
                if ((_macAddress.Length - i) > 2)
                    targetMacAddress = targetMacAddress + _spliter;                   //这里主要是转换格式没2加字符_spliter
            }
            return targetMacAddress;
        }

        //这里是选择的问题,combobox中选择各类网卡,进行选择
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            GetMAC();
            GetIP();
        }

        //获取IP的点击事件
        private void GetIPbtn_Click(object sender, EventArgs e)
        {
            GetIP();
        }


        //应用IP的点击事件
        private void UseIPDNSbtn_Click(object sender, EventArgs e)
        {
            string l = RandomIP().ToString();                                  //调用自写RandomIP获取随机数
            string ip1 = IPtxt.Text.Replace("*", l);                           //string中替换字符的一个方法
            try
            {
                if (!IsIpaddress(ip1.Trim()))
                {
                    MessageBox.Show("ip格式不正确!"); return;
                }
                if (!IsIpaddress(SubnetMasktxt.Text.Trim()))
                {
                    MessageBox.Show("子网掩码格式不正确!"); return;
                }
                if (!IsIpaddress(AcquiesceGatewaytxt.Text.Trim()))
                {
                    MessageBox.Show("网关格式不正确!"); return;
                }
                if (!IsIpaddress(FirstDNStxt.Text.Trim()))
                {
                    MessageBox.Show("DNS1格式不正确!"); return;
                }
                if (!IsIpaddress(SpareDNStxt.Text.Trim()))
                {
                    MessageBox.Show("DNS2格式不正确!"); return;
                }
                string[] ip = new string[] { ip1 };
                string[] SubMark = new string[] { SubnetMasktxt.Text.Trim() };
                string[] GateWay = new string[] { AcquiesceGatewaytxt.Text.Trim() };
                string[] DNS = new string[] { FirstDNStxt.Text.Trim(), SpareDNStxt.Text.Trim() };
                if (checkBox1.Checked == true && checkBox2.Checked == true)
                {
                    string name = comboBox1.Text;
                    string text;
                    Windows.winchangipDHCP(name, out text);
                }
                else if (checkBox1.Checked == false && checkBox2.Checked == true)
                {
                    string name = comboBox1.Text;
                    string text;
                    Windows.winchangdnsDHCP(name, DNS, out text);
                }
                else
                {
                    if (WindowsBtn.Checked == true)
                    {
                        string name = comboBox1.Text;
                        Windows.winchangeip(name, ip[0], SubMark[0], GateWay[0], DNS);
                    }
                    if (WMIBtn.Checked == true)
                    {
                        SetIpInfo(ip, SubMark, GateWay, DNS);
                    }
                }

                MessageBox.Show("ip信息设置成功!", "成功提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception er)
            {
                MessageBox.Show("设置出错:" + er.Message, "出错提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }



        #region 判断是否是正确的ip地址
        /// <summary>  
        /// 判断是否是正确的ip地址  
        /// </summary>  
        /// <param name="ipaddress"></param>  
        /// <returns></returns>  
        protected bool IsIpaddress(string ipaddress)
        {
            string[] nums = ipaddress.Split('.');
            if (nums.Length != 4) return false;
            foreach (string num in nums)
            {
                if (Convert.ToInt32(num) < 0 || Convert.ToInt32(num) > 255) return false;
            }
            return true;
        }


        //更改IP等方法
        protected void SetIpInfo(string[] ip, string[] SubMark, string[] GateWay, string[] DNS)
        {
            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;
                inPar = mo.GetMethodParameters("EnableStatic");
                inPar["IPAddress"] = ip;//ip地址  
                inPar["SubnetMask"] = SubMark; //子网掩码   
                mo.InvokeMethod("EnableStatic", inPar, null);//执行  

                inPar = mo.GetMethodParameters("SetGateways");
                inPar["DefaultIPGateway"] = GateWay; //设置网关地址 1.网关;2.备用网关  
                outPar = mo.InvokeMethod("SetGateways", inPar, null);//执行  

                inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
                inPar["DNSServerSearchOrder"] = DNS; //设置DNS  1.DNS 2.备用DNS  
                mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);// 执行  
                break; //只设置一张网卡,不能多张。  




            }
        }
        #endregion


        //点击我的微博跳转网页
        private void 我的微博ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("http://www.2345.com/");
        }

        //点击关于出现的网页
        private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("本软件开发于广东东软学院");
        }

        private void 更新ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("http://jq.qq.com/?_wv=1027&k=XYeWU8");
        }

        private void Addbtn_Click(object sender, EventArgs e)
        {
            AddIP addip = new AddIP();

            addip.Show();

            GetName();
        }


        //读取txt文件
        public void ReadClass()
        {
            StreamReader sr = new StreamReader(path, Encoding.UTF8);    //读取文件
            List<string> Class = new List<string>();
            int i = 0;
            while (sr.EndOfStream != true)
            {
                string str = sr.ReadLine();
                if (i % 6 == 0)
                {
                    Class.Add(str);
                }
                i++;
            }

            sr.Close();
            listBox1.DataSource = Class;
            sr.Close();
        }

        //读取IP信息
        public void ReadIP(int a)
        {
            StreamReader sr = new StreamReader(path, Encoding.UTF8);
            List<string> IPList = new List<string>();

            int j = 0;
            while (sr.EndOfStream != true)
            {
                string str = sr.ReadLine();
                if (j > a * 6 && j <= (a + 1) * 6)
                {

                    IPList.Add(str);

                }
                if (j > (a + 1) * 6) break;
                j++;
            }

            //string.substring 是系统自带的截取字符串的方法
            //而replace是字符串中自带的替换方法
            IPtxt.Text = IPList[0].Substring(5);
            //.Replace("*", l)             string l = RandomIP().ToString();
            SubnetMasktxt.Text = IPList[1].Substring(5);
            AcquiesceGatewaytxt.Text = IPList[2].Substring(5);
            FirstDNStxt.Text = IPList[3].Substring(7);
            SpareDNStxt.Text = IPList[4].Substring(9);
            sr.Close();
        }


        //但索引值改变时,触发此方法
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int c = listBox1.SelectedIndex;
                ReadIP(c);
            }
            catch
            {
                MessageBox.Show("程序错误,请联系1142064276@qq.com");
                Application.Exit();
            }

        }

        //获取*号,用做随机
        public int RandomIP()
        {
            Random random = new Random();

            return random.Next(253);

        }


        //更新数据所用
        private void Updatebtn_Click(object sender, EventArgs e)
        {

            //[]
            //IP地址=172.26.22.*
            //子网掩码=255.255.0.0
            //默认网关=172.26.22.254
            //DNS服务器=172.16.3.3
            //备用DNS服务器=172.16.3.4


            List<string> list = new List<string>(File.ReadAllLines(path, Encoding.UTF8));
            int i = listBox1.SelectedIndex;
            try
            {
                list[i * 6 + 1] = "IP地址=" + IPtxt.Text.Trim();
                list[i * 6 + 2] = "子网掩码=" + SubnetMasktxt.Text.Trim();
                list[i * 6 + 3] = "默认网关=" + AcquiesceGatewaytxt.Text.Trim();
                list[i * 6 + 4] = "DNS服务器=" + FirstDNStxt.Text.Trim();
                list[i * 6 + 5] = "备用DNS服务器=" + SpareDNStxt.Text.Trim();
                File.WriteAllLines(path, list.ToArray());
                MessageBox.Show("保存成功!");
            }
            catch
            {
                MessageBox.Show("保存错误!!!!");
            }

        }

        //删除数据所用
        private void Deletebtn_Click(object sender, EventArgs e)
        {
            MessageBox.Show("是否删除", "删除", MessageBoxButtons.OKCancel);
            List<string> lines = new List<string>(File.ReadAllLines(path, Encoding.UTF8));
            int i = listBox1.SelectedIndex;
            //lines.RemoveAt(i*6);//删除第3行
            lines.RemoveRange(i * 6, 6);
            File.WriteAllLines(path, lines.ToArray());
            MessageBox.Show("删除成功");
            ReadClass();
        }

        //搜索查询

        List<int> nameIndex = new List<int>();
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            nameIndex.Clear();                                         //清空nameIndex(如果不清空,则造成一直添加问题,之后变成超出索引范围)
            string txt = SelectClasstxt.Text.Trim();
            int index = listBox1.SelectedIndex;
            List<string> name = new List<string>();
            List<string> nameShow = new List<string>();
          
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                name.Add(listBox1.Items[i].ToString());
            }


            if (txt != "")
            {
                for (int i = 0; i < name.Count; i++)
                {
                    if (name[i].Contains(txt))
                    {
                        nameShow.Add(name[i]);
                        nameIndex.Add(i);
                    }
                }

                //设置listbox2的属性
                listBox2.Visible = true;
                listBox2.DataSource = nameShow;
                
            }
            else
            {
                listBox2.Visible = false;
            }
            


            #region   代码注释


            string txt = SelectClasstxt.Text.Trim();
            //List<string> name = new List<string>();
            //List<string> nameShow = new List<string>();
            List<int> nameIndex = new List<int>();
            //for (int i = 0; i < listBox1.Items.Count; i++)
            //{
            //    name.Add(listBox1.Items[i].ToString());
            //}



            遍历全部备查数据
            //foreach (var item in name)
            //{
            //    if (item.Contains(this.SelectClasscob.Text.Trim()))
            //    {
            //        //符合,插入ListNew
            //        nameShow.Add(item);
            //    }
            //}

            combobox添加已经查到的关键词
            //this.SelectClasscob.Items.AddRange(nameShow.ToArray());
            设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列
            //this.SelectClasscob.SelectionStart = this.SelectClasscob.Text.Length;
            保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置。
            //Cursor = Cursors.Default;
            自动弹出下拉框
            //this.SelectClasscob.DroppedDown = true;

            if (txt != "")
            {
                listBox2.Visible = true;
                for (int i = 0; i < name.Count; i++)
                {
                    if (name.Contains(txt))
                    {
                        nameShow.Add(name[i]);

                    }


                }
                listBox2.DataSource = nameShow;
            }


            #endregion
        }

        //listbox2索引改变事件
        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            int indexlistbox2 = listBox2.SelectedIndex;               //获取listbox2的索引
           listBox1.SelectedIndex= nameIndex[indexlistbox2];          //将nameIndex的数值传入listbox1中,达到改变listbox的索引值
         
        }

        //设置鼠标离开事件
        private void listBox2_MouseClick(object sender, MouseEventArgs e)
        {
            listBox2.Visible = false;
        }

        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            ReadClass();
        }

    
    
    }
}


AddIP.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace IP切换器
{
    public partial class AddIP : Form
    {

        string path = "..\\..\\ip.txt";
        public AddIP()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请填写完整!");
            }
                else if(textBox2.Text=="")
            {
                MessageBox.Show("请填写完整!");
            }
            else if (textBox3.Text == "")
            {
                MessageBox.Show("请填写完整!");
            }
            else if (textBox4.Text == "")
            {
                MessageBox.Show("请填写完整!");
            }
            else if (textBox5.Text == "")
            {
                MessageBox.Show("请填写完整!");
            }
            else if (nametxt.Text == "")
            {
                MessageBox.Show("请填写完整!");
            }
            else
            {
                AddIPDNS(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, nametxt.Text);
                Form1 form1 = new Form1();
                form1.ReadClass();
                this.Hide();
              
            }
           
        }

        public void AddIPDNS(string ip, string SubMark, string GateWay, string DNS1, string DNS2, string Name)
        {
            try
            {
                
                StreamWriter sw = new StreamWriter(path, true,Encoding.UTF8);
                //开始写入
                sw.WriteLine("[{0}]", Name);
                sw.WriteLine("IP地址=" + ip);
                sw.WriteLine("子网掩码=" + SubMark);
                sw.WriteLine("默认网关=" + GateWay);
                sw.WriteLine("DNS服务器=" + DNS1);
                sw.WriteLine("备用DNS服务器=" + DNS2);
                //清空缓冲区
                sw.Flush();
                //关闭流
                sw.Close();
               
                MessageBox.Show("写入成功!");
                
            }
            catch
            {
                MessageBox.Show("写入错误!!!!!!!!!");
            }
        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void label5_Click(object sender, EventArgs e)
        {

        }
    }
}

Windows.cs

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IP切换器
{
    public class Windows
    {
        public static void winchangeip(string name, string ip, string SubMark, string GateWay, string[] DNS)
        {
            string text = "";
            Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();
            WinChangeIP winChangeIP = new WinChangeIP();
            string msg = "正在切换IP··";
            int pb = 0;
            pb += 45;
            if (!winChangeIP.changeIP(name, ip, SubMark, GateWay, out text))
            {
                if (!(text == "netsh>对象已存在。\r\n\r\n\r\nnetsh>\r\n"))
                {
                    msg = text;
                    pb += 100;
                    return;
                }
                msg = "出现错误!对象已存在!!!!!自我修复中!";
                string[] array = ip.Split(new char[]
                {
                    '.'
                });
               
                if (!winChangeIP.changeIP(name, ip, SubMark, GateWay, out text))
                {
                    msg = text;
                    pb += 100;
                    return;
                }
            }
            msg = "正在切换首选DNS···";
            pb += 25;
            if (!winChangeIP.changeDNS(name, DNS[0], out text))
            {
                msg = text;
                pb += 100;
            }
            else
            {
                msg = "正在切换备用DNS·";
                pb += 25;
                if (!winChangeIP.changeBDNS(name, DNS[1], out text))
                {
                    msg = text;
                    pb += 100;
                }
                else
                {
                    pb += 25;
                    stopwatch.Stop();
                    long runtime = stopwatch.ElapsedMilliseconds;
                    msg = "";
                    pb += 100;
                }
            }
        }

        public static void winchangipDHCP(string name,out string msg)
        {
            WinChangeIP winchangip1 = new WinChangeIP();
            //winchangeip1.ipdhcp();
            //winchangeip1.dnsdhcp();
            winchangip1.ipdhcp(name,out msg);
            winchangip1.dnsdhcp(name,out msg);
        
        }
        public static void winchangdnsDHCP(string name,string[] DNS,out string msg)
        {
            WinChangeIP winchangip2 = new WinChangeIP();
            winchangip2.ipdhcp(name,out msg);




            Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();
            int pb=0;
            string text;
            msg = "正在切换首选DNS···";
            pb += 25;
            if (!winchangip2.changeDNS(name, DNS[0], out text))
            {
                msg = text;
                pb += 100;
            }
            else
            {
                msg = "正在切换备用DNS·";
                pb += 25;
                if (!winchangip2.changeBDNS(name, DNS[1], out text))
                {
                    msg = text;
                    pb += 100;
                }
                else
                {
                    pb += 25;
                    stopwatch.Stop();
                    long runtime = stopwatch.ElapsedMilliseconds;
                    msg = "";
                    pb += 100;
                }
            }

        }
    }

    public class WinChangeIP
    {
        string ntvison = Environment.OSVersion.Version.ToString();
        public string submitcs(string exename, string cs)
        {
            Process process = new Process();
            process.StartInfo.FileName = Environment.SystemDirectory + "\\" + exename;
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.CreateNoWindow = true;
            process.Start();
            process.StandardInput.WriteLine(cs);
            process.StandardInput.WriteLine("exit");
            return process.StandardOutput.ReadToEnd();
        }


        public bool changeIP(string adapname, string ip, string mask, string gateway, out string msg)
        {
            string oldValue = "netsh>\r\nnetsh>\r\n";
            string oldValue2 = "确定。";
            string cs = string.Concat(new string[]
			{
				"interface ip set address name= \"",
				adapname,
				"\"  source=static addr=",
				ip,
				" mask=",
				mask,
				" gateway=",
				gateway,
				" gwmetric=1"
			});
            msg = this.submitcs("netsh.exe", cs).Replace(oldValue, "").Replace(oldValue2, "");
            return msg.Trim() == "";
        }

        public bool changeDNS(string adapname, string dns, out string msg)
        {
            string text = "";

            string s = ntvison.Substring(0, 1);
            if (int.Parse(s) >= 6)
            {
                text = " validate=no";
            }
            string oldValue = "netsh>\r\nnetsh>\r\n";
            string oldValue2 = "配置的 DNS 服务器不正确或不存在。";
            string oldValue3 = "确定。";
            string cs = string.Concat(new string[]
			{
				"interface ip set dns name= \"",
				adapname,
				"\" source=static addr=",
				dns,
				text
			});
            msg = this.submitcs("netsh.exe", cs).Replace(oldValue, "").Replace(oldValue2, "").Replace(oldValue3, "");
            return msg.Trim() == "";
        }
        public bool changeBDNS(string adapname, string bdns, out string msg)
        {
            string text = "";
            string s = ntvison.Substring(0, 1);
            if (int.Parse(s) >= 6)
            {
                text = " validate=no";
            }
            string oldValue = "netsh>\r\nnetsh>\r\n";
            string oldValue2 = "配置的 DNS 服务器不正确或不存在。";
            string oldValue3 = "确定。";
            string cs = string.Concat(new string[]
			{
				"interface ip add dns name= \"",
				adapname,
				"\" addr=",
				bdns,
				" index=2",
				text
			});
            msg = this.submitcs("netsh.exe", cs).Replace(oldValue, "").Replace(oldValue2, "").Replace(oldValue3, "");
            return msg.Trim() == "";
        }
        public bool ipdhcp(string adapname, out string msg)
        {
            string oldValue = "netsh>\r\nnetsh>\r\n";
            string oldValue2 = "配置的 DNS 服务器不正确或不存在。";
            string oldValue3 = "确定。";
            string cs = "interface ip set address name= \"" + adapname + "\" source=dhcp";
            msg = this.submitcs("netsh.exe", cs).Replace(oldValue, "").Replace(oldValue2, "").Replace(oldValue3, "").Replace("netsh>已在此接口上启用 DHCP。\r\n\r\nnetsh>\r\n", "");
            return msg.Trim() == "";
        }

        public bool dnsdhcp(string adapname, out string msg)
        {
            string oldValue = "netsh>\r\nnetsh>\r\n";
            string oldValue2 = "配置的 DNS 服务器不正确或不存在。";
            string oldValue3 = "确定。";
            string cs = "interface ip set dns name= \"" + adapname + "\" source=dhcp";
            msg = this.submitcs("netsh.exe", cs).Replace(oldValue, "").Replace(oldValue2, "").Replace(oldValue3, "").Replace("netsh>已在此接口上启用 DHCP。\r\n\r\nnetsh>\r\n。", "");
            return msg.Trim() == "";
        }
    }
}


[A202]
IP地址=172.26.28.*
子网掩码=255.255.0.0
默认网关=172.26.28.254
DNS服务器=8.8.8.8
备用DNS服务器=114.114.114.114


由于当时时间的问题,所以没用到三层去做,其实这个是完全可以用三层去做的,用三层去做,代码的条理性更好一点,因为这样获取都比较好的!

所以建议你们最好用三层吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值