日期:2014-05-16  浏览次数:21308 次

C# 修改IP地址与操作access

C# 修改IP地址,操作access

?

?使用说明
1. 系统必须安装.NET Framework 2.0 或更高的版本 (文件:dotnetfx2.0.exe)。
2. 将压缩包解压即可使用本程序。
3. 必须在管理员权限运行。
4. 如果系统安装杀毒软件或安全卫士,会弹出修改IP的提示,请记住选择,并允许执行。
5. 修改IP地址,必须让网卡连接上网络才能修改。

?

使用方法:
运行软件后,先配置方案,步骤:
? 1.点击软件界面右上角的 【方案配置】
? 2.安装页面添加方案,添加成功后,点击返回。
? 3.方案列表中就会出现刚才添加的新方案。
? 4.选择一个方案,然后选择网卡(如果只有一个网卡联网,可不用选择)
? 5.点击 【更改 IP 地址】 按钮
? 6.等待更改成功。

?

?

?

核心源码:?

?Conn.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Management;
using System.Collections;
using Microsoft.Win32;
using System.Net.NetworkInformation;
using System.Runtime.InteropServices;

namespace IPSwitch
{
    public class Conn
    {
        /// <summary>
        /// 新增按钮的名称
        /// </summary>
        public const string _ADDED_NAME = "新增";
        /// <summary>
        /// 修改按钮的名称
        /// </summary>
        public const string _MODIFY_NAME = "编辑";
        /// <summary>
        /// 重置按钮的名称
        /// </summary>
        public const string _RESET_NAME = "重置";
        /// <summary>
        /// 删除按钮的名称
        /// </summary>
        public const string _DELETE_NAME = "删除";
        /// <summary>
        /// 保存按钮的名称
        /// </summary>
        public const string _SAVE_NAME = "保存";
        /// <summary>
        /// 标题文字
        /// </summary>
        public static string _TITLE = "";

        /// <summary>
        /// 获取title内容
        /// </summary>
        /// <returns></returns>
        public static string GetTitle()
        {
            _TITLE = DBReadAccess.GetObjectBySQL("select top 1 g_value from globals where g_name ='title'").ToString();
            return _TITLE;
        }

        /// <summary>
        /// 实例化 Win32_NetworkAdapterConfiguration类
        /// </summary>
        /// <returns></returns>
        private static ManagementObjectCollection GetMCInstances()
        {
            ManagementClass processClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
            return processClass.GetInstances();
        }

        /// <summary>
        /// 获取当前系统中所有网卡的名称
        /// </summary>
        /// <returns></returns>
        public static List<string> GetNICNameList()
        {
            List<string> list = new List<string>();
            ManagementObjectCollection moc = Conn.GetMCInstances();
            //获取当前系统的所有NIC
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"])
                {
                    //将当前已经启动的网卡名称加以标识
                    //list.Insert(0,mo.GetPropertyValue("Description").ToString());
                    list.Add(mo.GetPropertyValue("SettingID").ToString());
                    continue;
                }
                //list.Add("(不可用)"+mo.GetPropertyValue("Description").ToString());
            }
            return GetNICNameList(list);
        }

        /// <summary>
        /// 获取当前可以用网卡
        /// </summary>
        /// <returns></returns>
        public static int GetIPEnabledNum()
        {
            int i = 0;
            ManagementObjectCollection moc = Conn.GetMCInstances();
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"])
                {
                    i++;
                }
            }
            return i;
        }

        /// <summary>
        /// 设置 自动获取IP
        /// </summary>
        public static void SetIpAddressAuto()
        {
            return;
            //ManagementObjectCollection moc = Conn.GetMCInstances();
            //ManagementBaseObject inPar = null;
            //foreach (ManagementObject mo in moc)