zoukankan      html  css  js  c++  java
  • Configuring TCP/IP settings by WMI. 用WMI对象访问.设置IP配置

     

    WMI Extends the possibilities of .NET and simplifies the life while working on NetworkAdapters. The Following Code snippet lists all the Network adapters along with the IP Address, Subnet Mask, Default Gateway.

    ////////////////////////////////////////////--List Settings--////////////////////////////////////////////////////
    public void ListIP() 
    {
     ManagementClass objMC = new ManagementClass(
        "Win32_NetworkAdapterConfiguration"); 
     ManagementObjectCollection objMOC = objMC.GetInstances(); 
     
    foreach(ManagementObject objMO in objMOC) 
    { 
              if(!(bool)objMO["ipEnabled"]) 
                     continue; 
    
    
            
              Console.WriteLine(objMO["Caption"] + "," + 
                objMO["ServiceName"] + "," + objMO["MACAddress"]) ; 
              string[] ipaddresses = (string[]) objMO["IPAddress"]; 
              string[] subnets = (string[]) objMO["IPSubnet"]; 
              string[] gateways = (string[]) objMO["DefaultIPGateway"]; 
    
       
              Console.WriteLine("Printing Default Gateway Info:"); 
              Console.WriteLine(objMO["DefaultIPGateway"].ToString()); 
              
              Console.WriteLine("Printing IPGateway Info:"); 
              foreach(string sGate in gateways) 
                   Console.WriteLine (sGate); 
    
     
              Console.WriteLine("Printing Ipaddress Info:"); 
    
              foreach(string sIP in ipaddresses) 
                   Console.WriteLine(sIP); 
     
              Console.WriteLine("Printing SubNet Info:"); 
    
              foreach(string sNet in subnets) 
                   Console.WriteLine(sNet);
    }
    
    ///////////////////////////////////////--Configure Settings--///////////////////////
    public void setIP(string IPAddress,string SubnetMask, string Gateway) 
    { 
     
    ManagementClass objMC = new ManagementClass(
        "Win32_NetworkAdapterConfiguration"); 
    ManagementObjectCollection objMOC = objMC.GetInstances(); 
    
     
    foreach(ManagementObject objMO in objMOC) 
    { 
    
          if (!(bool) objMO["IPEnabled"]) 
               continue; 
    
    
     
          try 
            { 
              ManagementBaseObject objNewIP = null; 
              ManagementBaseObject objSetIP = null; 
              ManagementBaseObject objNewGate = null; 
    
              
              objNewIP = objMO.GetMethodParameters("EnableStatic"); 
              objNewGate = objMO.GetMethodParameters("SetGateways"); 
              
    
    
              //Set DefaultGateway
    
              objNewGate["DefaultIPGateway"] = new string[] {Gateway}; 
              objNewGate["GatewayCostMetric"] = new int[] {1}; 
              
    
              //Set IPAddress and Subnet Mask
    
              objNewIP["IPAddress"] = new string[] {IPAddress}; 
              objNewIP["SubnetMask"] = new string[] {SubnetMask}; 
              
              objSetIP = objMO.InvokeMethod("EnableStatic",objNewIP,null); 
              objSetIP = objMO.InvokeMethod("SetGateways",objNewGate,null); 
    
    
              
              Console.WriteLine(
                 "Updated IPAddress, SubnetMask and Default Gateway!"); 
    
    
            
            } 
            catch(Exception ex) 
            { 
                  MessageBox.Show("Unable to Set IP : " + ex.Message); } 
            }
    

    引用注明出处,来自codeproject

  • 相关阅读:
    使用python内置模块os和openpyxl搜索指定文件夹下Excel中的内容
    python实现DNA序列字符串转换,互补链,反向链,反向互补链
    PandaSeq安装报错ltld required, install libtool library
    使用MySQL客户端登录Ensemble数据库查询相关信息
    第118天:移动端开发——视口
    第117天:Ajax实现省市区三级联动
    第116天: Ajax运用artTemplate实现菜谱
    第115天:Ajax 中artTemplate模板引擎(一)
    第114天:Ajax跨域请求解决方法(二)
    第113天:Ajax跨域请求解决方法
  • 原文地址:https://www.cnblogs.com/asight/p/1785356.html
Copyright © 2011-2022 走看看