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

  • 相关阅读:
    bcdedit /copy {current} /d "xxx" 报错,提示找不到系统文件
    Moving docker images location to different partition
    docker 使用save和load命令来转移image
    docker image rm ubuntu 失败
    yum国内镜像配置
    VMware下安装CentOS7 无法通过桥接模式进行联网
    docker大概理解
    windows cmd 切换磁盘
    使用Git向GitHub上上传代码
    抛砖引玉——进程和线程的理解方式
  • 原文地址:https://www.cnblogs.com/asight/p/1785356.html
Copyright © 2011-2022 走看看