我有一个 debian 服务器,我将它的 mac 地址保存在 /usr 文件夹中的一个 txt 文件中。
每次我启动机器时,我尝试执行的脚本都应该检查当前的 mac 地址并将其与保存在 txt 文件中的地址进行比较。如果它们不匹配,则机器应关闭。
该代码适用于 Windows,但我必须使其适用于 debian。所以我安装了单声道(apt-get install mono-complete),创建了包含代码的 .cs 文件并将其传输到 debian 机器上。
当我运行 mcs shutdown.cs(shutdown 是我创建的文件的名称)命令时,我收到此错误:
CS0234:命名空间“System.Net”中不存在类型或命名空间名称“NetworkInformation”。您是否缺少程序集参考?**
如何解决?
using System.Net.NetworkInformation;
static void Main(string[] args)
{
string newmc = Convert.ToString(GetMacAddress()); //current mac address
string mc = File.ReadAllText(@"/usr/mc.txt"); //mac address saved on a txt file previously
if (newmc != mc) //shutdown if the mac addresses dont match
{
System.Diagnostics.Process.Start("shutdown.exe", "-s -t 0");
}
}
static string GetMacAddress()
{
string macAddresses = "";
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
if (nic.NetworkInterfaceType != NetworkInterfaceType.Ethernet) continue;
if (nic.OperationalStatus == OperationalStatus.Up)
{
macAddresses += nic.GetPhysicalAddress().ToString();
break;
}
}
return macAddresses;
}