Как очистить шлюз по умолчанию от сетевого интерфейса (nic) с помощью C # - PullRequest
2 голосов
/ 25 июля 2011

Сейчас я меняю шлюз по умолчанию, используя:

ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] { "192.168.0.1" };
var r = mo.InvokeMethod("SetGateways", gateway, null);

Что я хочу знать, так это как я могу очистить шлюз, я пробовал пустую строку и нулевые значения в качестве параметров вместо «192.168.0.1», но не работал. У кого-нибудь есть идеи по этому поводу?

Спасибо

Ответы [ 3 ]

1 голос
/ 01 мая 2013

Установите для вашего шлюза тот же IP-адрес, что и для статического IP-адреса сетевой карты. Не уверен, почему, но это очищает ворота.

0 голосов
/ 26 июля 2011

Установить шлюз на пустой массив.

ManagementBaseObject gateway = mo.GetMethodParameters("SetGateways");
gateway["DefaultIPGateway"] = new string[] {};
var r = mo.InvokeMethod("SetGateways", gateway, null);
0 голосов
/ 26 июля 2011

Существует ряд конфигураций, которые приведут к сбою вызова, например, при включенном DHCP, которые не связаны с WMI.Сам код, вероятно, в порядке, если предположить, что mo является экземпляром Win32_NetworkAdapterConfiguration.

Если вы этого еще не сделали, вы можете использовать значение r.Properties["returnvalue"].Value, чтобы получить возвращаемое значение, и проверить, чтовозвращаемое значение - это то, что вы ожидаете (MSDN ref) .Код ошибки должен сузить проблему.

...