You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
5.7 KiB
128 lines
5.7 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Windows.Forms; |
|
using System.Diagnostics; |
|
using System.Net.NetworkInformation; |
|
using System.Net; |
|
|
|
namespace UTIL |
|
{ |
|
#region Работа с сетевыми адаптерами |
|
public class SetNet |
|
{ |
|
public void setIP(string caption, string ipaddress, Boolean dhcp) |
|
{ |
|
// SetIP(EthStatic, "/c netsh interface ip set address \"" + EthName + "\" static " + Properties.Settings.Default.EthIPac + " " + Properties.Settings.Default.Subnet + " " + Properties.Settings.Default.EthDnsac + " & netsh interface ip set dns \"" + EthName + "\" static " + Properties.Settings.Default.EthDnsac); |
|
String arg = ""; |
|
if (!dhcp) |
|
{ |
|
arg = $"/c netsh interface ipv4 set address \"{caption}\" static \"{ipaddress}\" \"255.0.0.0\""; |
|
// arg = $"/c netsh interface ipv4 set address \"{caption}\" static \"{ipaddress}\" \"255.0.0.0\" \"192.168.1.2\" & netsh interface ipv4 set dns \"{caption}\" static \"192.168.1.2\""; |
|
// arg = $"/c netsh interface ip set address \"{caption}\" static \"{ipaddress}\" \"255.0.0.0\" \"192.168.1.2\" & netsh interface ip set dns \"{caption}\" static \"192.168.1.2\""; |
|
} |
|
else |
|
{ |
|
arg = $"/c netsh interface ipv4 set address \"{caption}\" dhcp & netsh interface ipv4 set dns \"{caption}\" dhcp"; |
|
// arg = $"/c netsh interface ip set address \"{caption}\" dhcp & netsh interface ip set dns \"{caption}\" dhcp"; |
|
} |
|
|
|
try |
|
{ |
|
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe"); |
|
psi.UseShellExecute = true; |
|
psi.WindowStyle = ProcessWindowStyle.Hidden; |
|
psi.Verb = "runas"; |
|
psi.Arguments = arg; |
|
Process ps = Process.Start(psi); |
|
ps.WaitForExit(); |
|
if (ps.HasExited) |
|
{ |
|
MessageBox.Show("Адрес изменен", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
MessageBox.Show(ex.Message); |
|
} |
|
} |
|
public List<String[]> getadapters() |
|
{ |
|
List<String[]> adapters = new List<string[]>(); |
|
String ip = ""; |
|
String dns = ""; |
|
String nic = ""; |
|
String gw = ""; |
|
String dhcp = ""; |
|
String ipen = ""; |
|
String sub = ""; |
|
|
|
string[] NwDesc = { "TAP", "VMware", "Windows", "Virtual", "WAN", "Microsoft", "NDIS", "Bluetooth" }; // Adapter types (Description) to be ommited |
|
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) |
|
{ |
|
if (ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet && !NwDesc.Any(ni.Description.Contains)) // check for adapter type and its description |
|
{ |
|
nic = ni.Name; |
|
Console.WriteLine($"Name: {nic} # Desc: {ni.Description} # Mac: {ni.GetPhysicalAddress().ToString()} # Status: {ni.OperationalStatus}"); |
|
|
|
if (ni.GetIPProperties().UnicastAddresses.Count == 0) |
|
ip = ""; |
|
else |
|
{ |
|
foreach (UnicastIPAddressInformation ips in ni.GetIPProperties().UnicastAddresses) |
|
{ |
|
if (ips.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) |
|
{ |
|
ip = ips.Address.ToString(); |
|
} |
|
} |
|
} |
|
if (ni.GetIPProperties().DnsAddresses.Count == 0) |
|
dns = ""; |
|
else |
|
{ |
|
foreach (IPAddress dnsAdress in ni.GetIPProperties().DnsAddresses) |
|
{ |
|
if (dnsAdress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) |
|
{ |
|
dns = dnsAdress.ToString(); |
|
} |
|
} |
|
} |
|
if (ni.GetIPProperties().GatewayAddresses.Count == 0) |
|
gw = ""; |
|
else |
|
{ |
|
foreach (GatewayIPAddressInformation gwAdress in ni.GetIPProperties().GatewayAddresses) |
|
{ |
|
gw = gwAdress.Address.ToString(); |
|
} |
|
} |
|
if (ni.GetIPProperties().DhcpServerAddresses.Count == 0) |
|
dhcp = ""; |
|
else |
|
{ |
|
foreach (IPAddress dhcpAdress in ni.GetIPProperties().DhcpServerAddresses) |
|
{ |
|
dhcp = dhcpAdress.ToString(); |
|
} |
|
} |
|
|
|
|
|
sub = "255.255.255.0"; |
|
if (ni.OperationalStatus.ToString() == "Down") |
|
ipen = "False"; |
|
else |
|
ipen = "True"; |
|
|
|
// Caption IPAddress IPSubnet DHCPEnabled IPEnabled |
|
Console.WriteLine($"{nic}-{ip}-{sub}-{dhcp}-{ipen}"); |
|
adapters.Add(new String[] { ni.Description, ip, sub, (dhcp == "" ? "False" : "True"), ipen, nic }); |
|
} |
|
} |
|
return adapters; |
|
} |
|
} |
|
#endregion |
|
|
|
}
|
|
|