首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>C#语言>C#实现更改IP功能源码
C#实现更改IP功能源码
来源: 发布时间:2008-02-01 发布人: 浏览: 人次   字体: [ ]  
C#实现更改IP功能源码
using
System;
using System.Management;
 
public class ChangeIP
{ 
    private ManagementBaseObject iObj = null;
    private ManagementBaseObject oObj = null;
    private ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
    private readonly ManagementObjectCollection moc;
 
    ///<summary>
    /// example:
    ///<code>
    /// ChangeIP o = new ChangeIP();
    /// string[] ipList = new string[]{"192.168.0.253","192.168.0.250"};
    /// string[] subnetList = new string[]{"255.255.255.0","255.255.255.0"};
    /// o.ChangeTo(ipList,subnetList);
    ///</code>
    ///</summary>
    public ChangeIP()
    {
        moc = mc.GetInstances();
    }
 
    ///<summary>cortrol</summary>
    ///<param name="ipAddr">IPAddr List</param>
    ///<param name="subnetMask">subnetMask List</param>
    public void ChangeTo(string[] ipAddr, string[] subnetMask)
    {
        foreach (ManagementObject mo in moc)
        {
            if (!(bool)mo["IPEnabled"]) continue;
 
            iObj = mo.GetMethodParameters("EnableStatic");
            iObj["IPAddress"] = ipAddr;
            iObj["SubnetMask"] = subnetMask;
            oObj = mo.InvokeMethod("EnableStatic", iObj, null);
        }
    }
 
    ///<summary>cortrol</summary>
    ///<param name="ipAddr">IPAddr List</param>
    ///<param name="subnetMask">subnetMask List</param>
    ///<param name="gateways">gateway List</param>
    ///<param name="gatewayCostMetric">gateway CostMetric List, example: 1</param>
    public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric)
    {
        foreach (ManagementObject mo in moc)
        {
            if (!(bool)mo["IPEnabled"]) continue;
 
            iObj = mo.GetMethodParameters("EnableStatic");
            iObj["IPAddress"] = ipAddr;
            iObj["SubnetMask"] = subnetMask;
            oObj = mo.InvokeMethod("EnableStatic", iObj, null);
 
            iObj = mo.GetMethodParameters("SetGateways");
            iObj["DefaultIPGateway"] = gateways;
            iObj["GatewayCostMetric"] = gatewayCostMetric;
            oObj = mo.InvokeMethod("SetGateways", iObj, null);
        }
    }
 
    ///<summary>cortrol</summary>
    ///<param name="ipAddr">IPAddr List</param>
    ///<param name="subnetMask">subnetMask List</param>
    ///<param name="gateways">gateway List</param>
    ///<param name="gatewayCostMetric">gateway CostMetric List, example: 1</param>
    ///<param name="dnsServer">DNSServer List</param>
    public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric, string[] dnsServer)
    {
        foreach (ManagementObject mo in moc)
        {
            if (!(bool)mo["IPEnabled"]) continue;
 
            iObj = mo.GetMethodParameters("EnableStatic");
            iObj["IPAddress"] = ipAddr;
            iObj["SubnetMask"] = subnetMask;
            oObj = mo.InvokeMethod("EnableStatic", iObj, null);
 
            iObj = mo.GetMethodParameters("SetGateways");
            iObj["DefaultIPGateway"] = gateways;
            iObj["GatewayCostMetric"] = gatewayCostMetric;
            oObj = mo.InvokeMethod("SetGateways", iObj, null);
 
            iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");
            iObj["DNSServerSearchOrder"] = dnsServer;
            oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);
        }
    }
 
    ///<summary>DHCPEnabled</summary>
    public void EnableDHCP()
    {
        foreach (ManagementObject mo in moc)
        {
            if (!(bool)mo["IPEnabled"]) continue;
 
            if (!(bool)mo["DHCPEnabled"])
            {
                iObj = mo.GetMethodParameters("EnableDHCP");
                oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
            }
        }
    }
}
 

相 关 文 章   发布商链接
·初学者参考C#中操作XML修改完整版
·谈谈对C#委托的理解,附代码实例
·C#中操作XML Node节点细节操作
·浅谈C#对象深拷贝、浅铐贝、直接拷贝
·用C#编写ActiveX控件代码实例
·C#正则表达式常用备忘参考
·C#实现阿拉伯数字转变成大写的类
·什么是装箱和拆箱?及其相应的操作事...
·C#获取IE临时文件夹中的文件代码
·什么是c#深拷贝与浅拷贝及其代码示例
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·最为经典的C#操作文件的方法...
·有助快速理解C#委托和事件之...
·C#泛型学习笔记总结
·c#语言从dbf数据库提取数据并
·C#编写控制线程的运行和线程...
·怎样在C#中删除只读文件及其...
·C#函数中返回多个值的两种方...
·如何在C#中插入照片到Excel文
·如何在c#中获取事件注册的方...
·C#对timer类的使用操作代码
·什么是泛型?泛型的一些概述
·C#如何从文本文件读取信息并...
·如何在c#中去掉字符串中的回...
·如何使用C#获取IIS服务器版本...
·什么是泛型编程思想?及其简...
热 门 文 章
·C#如何获取文件路径中的文件...
·c#中收发邮件处理代码(POP3,...
·浅谈接口和抽象类的区别,加...
·什么是c#深拷贝与浅拷贝及其...
·C#语言实现创建、删除和移动...
·C#中关于四舍五入函数的讨论...
·c#中的ArrayList属性祥解及其...
·快速进行List排序的通用方法...
·C#对timer类的使用操作代码
·C#如何从文本文件读取信息并...
·C#语言实现从XML文件导出数据...
·用C#编写ActiveX控件代码实例
·如何在c#中去掉字符串中的回...
·String.Split 方法使用及其代...
·C#语言绘制实时曲线图代码实...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .