retry eveything
This commit is contained in:
154
Network.cs
Normal file
154
Network.cs
Normal file
@@ -0,0 +1,154 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
class Program
|
||||
{
|
||||
[DllImport("iphlpapi.dll", CharSet = CharSet.Auto)]
|
||||
public static extern int GetAdaptersInfo(IntPtr pAdapterInfo, ref int pOutBufLen);
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
||||
public struct IP_ADAPTER_INFO
|
||||
{
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||
public string AdapterName;
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
||||
public string Description;
|
||||
public uint AddressLength;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
|
||||
public byte[] Address;
|
||||
public int Index;
|
||||
public uint Type;
|
||||
public uint DhcpEnabled;
|
||||
public IntPtr CurrentIpAddress;
|
||||
public IP_ADDR_STRING IpAddressList;
|
||||
public IP_ADDR_STRING GatewayList;
|
||||
public IP_ADDR_STRING DhcpServer;
|
||||
public bool HaveWins;
|
||||
public IP_ADDR_STRING PrimaryWinsServer;
|
||||
public IP_ADDR_STRING SecondaryWinsServer;
|
||||
public uint LeaseObtained;
|
||||
public uint LeaseExpires;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
||||
public struct IP_ADDR_STRING
|
||||
{
|
||||
public IntPtr Next;
|
||||
public IP_ADDRESS_STRING IpAddress;
|
||||
public IP_ADDRESS_STRING IpMask;
|
||||
public int Context;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
|
||||
public struct IP_ADDRESS_STRING
|
||||
{
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
|
||||
public string Address;
|
||||
}
|
||||
|
||||
[DllImport("iphlpapi.dll")]
|
||||
public static extern int SendARP(uint destIp, uint srcIp, byte[] macAddress, ref uint physicalAddrLen);
|
||||
|
||||
public static string GetIP()
|
||||
{
|
||||
string hostName = Dns.GetHostName();
|
||||
IPAddress[] addresses = Dns.GetHostAddresses(hostName);
|
||||
IPAddress ipv4 = addresses.FirstOrDefault(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
|
||||
return ipv4?.ToString();
|
||||
}
|
||||
|
||||
public static string GetSSID()
|
||||
{
|
||||
string ssid = "";
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
Process process = new Process();
|
||||
process.StartInfo.FileName = "netsh";
|
||||
process.StartInfo.Arguments = "wlan show interfaces";
|
||||
process.StartInfo.RedirectStandardOutput = true;
|
||||
process.StartInfo.UseShellExecute = false;
|
||||
process.StartInfo.CreateNoWindow = true;
|
||||
|
||||
process.Start();
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
process.WaitForExit();
|
||||
|
||||
int ssidIndex = output.IndexOf("SSID", StringComparison.OrdinalIgnoreCase);
|
||||
if (ssidIndex >= 0)
|
||||
{
|
||||
int startIndex = output.IndexOf(':', ssidIndex) + 1;
|
||||
int endIndex = output.IndexOf('\n', startIndex);
|
||||
ssid = output.Substring(startIndex, endIndex - startIndex).Trim();
|
||||
}
|
||||
}
|
||||
|
||||
return ssid;
|
||||
}
|
||||
|
||||
public static string GetMAC()
|
||||
{
|
||||
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
|
||||
foreach (NetworkInterface networkInterface in networkInterfaces)
|
||||
{
|
||||
if (networkInterface.OperationalStatus == OperationalStatus.Up && networkInterface.NetworkInterfaceType != NetworkInterfaceType.Loopback)
|
||||
{
|
||||
PhysicalAddress macAddress = networkInterface.GetPhysicalAddress();
|
||||
byte[] bytes = macAddress.GetAddressBytes();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < bytes.Length; i++)
|
||||
{
|
||||
sb.AppendFormat("{0}", bytes[i].ToString("X2"));
|
||||
if (i != bytes.Length - 1)
|
||||
sb.Append(":");
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void StopPrograms()
|
||||
{
|
||||
// Add code to stop programs here
|
||||
Console.WriteLine("Stopping programs...");
|
||||
}
|
||||
|
||||
public static void StartPrograms()
|
||||
{
|
||||
// Add code to start programs here
|
||||
Console.WriteLine("Starting programs...");
|
||||
}
|
||||
|
||||
static void Main()
|
||||
{
|
||||
string ip = GetIP();
|
||||
Console.WriteLine("IP Address: " + ip);
|
||||
|
||||
string ssid = GetSSID();
|
||||
Console.WriteLine("SSID: " + ssid);
|
||||
|
||||
string mac = GetMAC();
|
||||
Console.WriteLine("Ethernet MAC Address: " + mac);
|
||||
|
||||
Console.WriteLine("Enter 'stop' to stop programs or 'start' to start programs:");
|
||||
string input = Console.ReadLine();
|
||||
|
||||
switch (input.ToLower())
|
||||
{
|
||||
case "stop":
|
||||
StopPrograms();
|
||||
break;
|
||||
case "start":
|
||||
StartPrograms();
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Invalid input");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user