Debian サーバーがあり、その MAC アドレスを /usr フォルダーの txt ファイルに保存しました。
マシンを起動するたびに、実行しようとしているスクリプトは現在の MAC アドレスをチェックし、それを txt ファイルに保存されているものと比較する必要があります。それらが一致しない場合、マシンはシャットダウンする必要があります。
コードは Windows で動作しますが、debian で動作させる必要があります。だから私はモノをインストールし(apt-get install mono-complete)、コードを含む.csファイルを作成し、debianマシンに転送しました。
mcs shutdown.cs (shutdown は作成したファイルの名前です) コマンドを実行すると、次のエラーが発生します。
CS0234: 型または名前空間名 'NetworkInformation' は、名前空間 'System.Net' に存在しません。アセンブリ参照がありませんか?**
これはどのように解決できますか?
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;
}