Описываем класс опций адаптера:
public class AdapterOptions
{
string _adapterName; // Имя адаптера
public string AdapterName
{
get { return _adapterName; }
set { _adapterName = value; }
}
string _macAddress; // MAC адрес
public string MACAddress
{
get { return _macAddress; }
set { _macAddress = value; }
}
string [] _ipAdress; // IP адрес
public string [] IpAdress
{
get { return _ipAdress;}
set { _ipAdress = value;}
}
}
Получение его опций можно произвести следующим образом:
public static AdapterOptions GetAdapterOptions(string AdapterName)
{
AdapterOptions adapterOptions = new AdapterOptions();
ManagementClass netAdapters = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection netAdaptersCollection = netAdapters.GetInstances();
foreach (ManagementBaseObject managementBaseObject in netAdaptersCollection)
{
if (!(bool)managementBaseObject["ipEnabled"])
continue;
if ((string)managementBaseObject["Caption"] == AdapterName)
{
adapterOptions.AdapterName = AdapterName;
adapterOptions.ServiceName = (string) managementBaseObject["ServiceName"];
adapterOptions.MACAddress = (string) managementBaseObject["MACAddress"];
adapterOptions.IpAdress = (string[]) managementBaseObject["IPAddress"];
adapterOptions.SubnetMask = (string[]) managementBaseObject["IPSubnet"];
adapterOptions.Gateways = (string[]) managementBaseObject["DefaultIPGateway"];
adapterOptions.DNSAddresses = (string[]) managementBaseObject["DNSServerSearchOrder"];
return adapterOptions;
}
}
return null;
}
И, соответственно, установка:
public static void SetAdapterOptions(AdapterOptions adapterOptions)
{
ManagementClass netAdapters = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection netAdaptersCollection = netAdapters.GetInstances();
foreach (ManagementObject managementBaseObject in netAdaptersCollection)
{
if (!(bool)managementBaseObject["ipEnabled"])
continue;
if ((string)managementBaseObject["Caption"] == adapterOptions.AdapterName)
{
try
{
// Устанавливаем IP адреса и маски подсети
// Получаем параметры метода
ManagementBaseObject ipAddr = managementBaseObject.GetMethodParameters("EnableStatic");
// Устанавливаем их
ipAddr["IPAddress"] = adapterOptions.IpAdress;
ipAddr["SubnetMask"] = adapterOptions.SubnetMask;
// Вызываем метод с указанными параметрами
managementBaseObject.InvokeMethod("EnableStatic", ipAddr, null);
}
catch (Exception)
{
MessageBox.Show("Got error while trying to change adapter parameters", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
MessageBox.Show("Setting new options successfully complete", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
}
0.00 (0%) 0 votes










