2010-08-10 3 views
1

Возможно ли установить IP-адрес (или что-нибудь еще) для сетевого интерфейса, который в настоящее время недоступен?Настройка IP-адреса сетевого интерфейса, который не подключен к сети (IPEnabled not true)/кабель не подключен?

Я использую WMI, то есть ManagementObjectCollection и Invoke методов. Но, похоже, нет способа настроить IP в C# на сетевом адаптере, который в настоящее время недоступен - кабель не подключен?

Сообщение об ошибке отсутствует. Например, я устанавливаю IP вручную для интерфейса wifi, а WMI я хочу установить его в DHCP.

ManagementObjectSearcher query = new ManagementObjectSearcher("Select * from Win32_NetworkAdapterConfiguration where SettingID=\"" + selectedProfile.AdapterGUID + "\""); 
    ManagementObjectCollection moc = query.Get(); 

    foreach (ManagementObject mo in moc) 
    { 
     ManagementBaseObject newDHCPIP = mo.GetMethodParameters("EnableDHCP"); 
     mo.InvokeMethod("EnableDHCP", newDHCPIP, null); 
     ManagementBaseObject newDHCPDNS = mo.GetMethodParameters("SetDNSServerSearchOrder"); 
     newDHCPDNS["DNSServerSearchOrder"] = null; 
     mo.InvokeMethod("SetDNSServerSearchOrder", newDHCPDNS, null); 
     ManagementBaseObject newDHCPRenew = mo.GetMethodParameters("RenewDHCPLease"); 
     mo.InvokeMethod("RenewDHCPLease", newDHCPRenew, null); 
     mo.Dispose(); 
    } 

Я на 100% уверен, что выбираю правильный сетевой адаптер. Но когда я его устанавливаю и смотрю на конфигурацию (через сеть Windows и центр обмена, свойства адаптера), все еще существует статический IP-адрес.

Он работает только после того, как я подключиться к сети Wi-Fi, то я смотрю на конфигурации и есть DHCP

+0

Слишком расплывчатый. Что такое IPEnabled? –

+0

IPEnabled = true устанавливается в сетевой интерфейс, когда вы ex. подключите сетевой кабель к вашей сетевой карте, когда он находится в сети ... (на w7, на w2000 всегда верно, но не важно, важно установить IP-адрес сетевого интерфейса в C#, когда интерфейс отключен. – k0s

+0

вы можете быть более конкретным, в частности, показывать код, который вы используете для поиска интерфейса и манипулировать им, который (предположительно) отлично работает, если интерфейс работает, но не работает, если интерфейс не работает, и укажите, как он сбой (ошибка брошенный, объект не найден в поисковом запросе WMI и т. д.) –

ответ

1

Я думаю, что лучшим решением будет использовать netsh, потому что WMI не работает правильно.

Смежные вопросы