TCP\IP настрйоки

 
0
 
.NET
ava
Veitmen | 20.09.2007, 09:05
Привет всем. Как можно поменять натсройки определенного подключения?? Т.е. есть в панеле управления-> сетевые подключения, далее выбираю подключение, далее TCP\IP и там есть настройки. Как это менять программно??? Поиском пользовался, того чего надо не нашел...
Comments (4)
ava
Stepan_Lameroff | 20.09.2007, 10:37 #
Проще всего при помощи WMI.
Получить список адаптеров:

public static IEnumerable<String> GetNICNames()
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

foreach (ManagementObject mo in mc.GetInstances())
{
if ((bool)mo["IPEnabled"])
{
yield return (mo["Caption"] as string) ?? String.Empty;
}
}
}


Поменять IP:

public static void SetIP(string nicName,
string IpAddresses,
string SubnetMask,
string Gateway,
string DnsSearchOrder)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

foreach (ManagementObject mo in mc.GetInstances())
{
if ((bool)mo["IPEnabled"])
{
if (mo["Caption"].Equals(nicName))
{
ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");
ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");

newGate["DefaultIPGateway"] = new string[] {Gateway};
newGate["GatewayCostMetric"] = new int[] {1};

newIP["IPAddress"] = IpAddresses.Split(',');
newIP["SubnetMask"] = new string[] {SubnetMask};

newDNS["DNSServerSearchOrder"] = DnsSearchOrder.Split(',');

ManagementBaseObject setIP = mo.InvokeMethod("EnableStatic", newIP, null);
ManagementBaseObject setGateways = mo.InvokeMethod("SetGateways", newGate, null);
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);

break;
}
}
}
}

ava
Veitmen | 21.09.2007, 08:55 #
Спасибо большое. smile Все отлично работает!) Менее ста постов поэтому не могу +1. Еще один вопрос. Как указать что автоматические настройки будут?
ava
Stepan_Lameroff | 21.09.2007, 11:22 #
Цитата (Veitmen @ 21.9.2007, 08:55 findReferencedText)
Как указать что автоматические настройки будут?


public static void SetDHCP(string nicName)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

foreach (ManagementObject mo in mc.GetInstances())
{
if ((bool)mo["IPEnabled"])
{
if (mo["Caption"].Equals(nicName))
{
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = null;
ManagementBaseObject enableDHCP = mo.InvokeMethod("EnableDHCP", null, null);
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
}
}
}
}


еще посмотрите ifconfig for windows
ava
Veitmen | 21.09.2007, 12:09 #
Еще раз спасибо!))
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit