2011-03-05 4 views
0

저는 프로그래밍에 대해 더 많이 배우고 싶은 C# newby입니다. 그래서 간단한 도구로 시작했는데 선택된 네트워크 어댑터의 주소를 정적 또는 동적으로 설정할 수 있습니다 (Windows TCP/IP 속성과 마찬가지로 도구의 디자인을 TCP/IP 속성과 똑같이 설정했습니다). 정적 IP 주소를 네트워크 어댑터에 설정하면 효과가 있습니다. 그러나 나는 컴퓨터를 네트워크에서 분리하고 네트워크 어댑터의 IP를 동적으로 (IP 주소를 자동으로 얻음) 설정하면 Windows IP Propertie를 동적으로 설정하지 않습니다. 라우터 나 DHCP 서버가 활성화되어있는 네트워크에 연결되어있을 때만 자동으로 IP 주소를 얻을 수 있다는 것을 알고 있습니다 .. 하지만 컴퓨터에서 네트워크 연결을 끊으면 ,는 I는 잘 작동하여 윈도우 TCP/IP 속성에 동적으로 IP 속성을 설정합니다. 내 코드에 worng은 무엇입니까?C# 도구로 IP 설정하기

감사합니다 많이 도와!

난 코드를 아래 사용 :

public void setDHCPMode() 
    { 
     ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
     ManagementObjectCollection moc = mc.GetInstances(); 

     foreach (ManagementObject mo in moc) 
     { 
      if (!(bool)mo["ipEnabled"]) 
       continue; 

      try 
      { 
       string desc = (string)(mo["Description"]); 

       if (desc == NICcomboBox.Text) 
       { 
        ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder"); 
        newDNS["DNSServerSearchOrder"] = null; 
        ManagementBaseObject enableDHCP = mo.InvokeMethod("EnableDHCP", null, null); 
        ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null); 
       } 

       toolStripStatusLabel1.Text = "DHCP set"; 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Unable to set DHCP : " + ex.Message); 
      } 
     } 
    } 
+6

프로그래밍에 대해 더 자세히 알고 싶으면 프로그래밍에 대한 정보와 Windows 관리 클래스에 대한 정보를 얻으십시오. –

답변

0

문제점을 발견했습니다. WMI가 제대로 작동하지 않는 것 같습니다. 케이블이 특정 NIC에 대해 연결되지 않은 동안 TCP/IP 속성을 DHCP로 설정할 수 없습니다.

내가 regestry에서 DHCP 모드를 설정하여 해결했습니다. 이제 완벽하게 작동합니다.