Mac / Linuxプラットフォームで使用できるように、Monoに移植する必要があるWindowsサービスを作成しました。
それはFirewallAPI.dllを利用します(私はそれが実際の名前だと思います...)。他の名前は、NetFwTypeLb、NATUPNPLib、およびNETCONLibです。
私はグーグルでこれをMac/Linuxプラットフォームに実装する方法を見つけようとしていますが、これを行うために使用できるものが見つかりません。
これは可能ですか?そして、別の質問をこれと組み合わせると、Mac / Linuxプラットフォームでは、サービス(別名「デーモン」と呼ばれる)を簡単にインストールして実行できますか?
ありがとう、マデリーン
念のために言っておきますが、これは私が使用している現在のコードです。別のStackOverflowの質問から取得しました。
public class Firewall
{
public static INetFwMgr WinFirewallManager()
{
Type type = Type.GetTypeFromCLSID(
new Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}"));
return Activator.CreateInstance(type) as INetFwMgr;
}
public bool AuthorizeProgram(string title, string path,
NET_FW_SCOPE_ scope, NET_FW_IP_VERSION_ ipver)
{
Type type = Type.GetTypeFromProgID("HNetCfg.FwAuthorizedApplication");
INetFwAuthorizedApplication authapp = Activator.CreateInstance(type)
as INetFwAuthorizedApplication;
authapp.Name = title;
authapp.ProcessImageFileName = path;
authapp.Scope = scope;
authapp.IpVersion = ipver;
authapp.Enabled = true;
EventLog.WriteEntry("MachineVerification", authapp.Name + " " + authapp.Scope + " " + authapp.IpVersion);
INetFwMgr mgr = WinFirewallManager();
try
{
mgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(authapp);
EventLog.WriteEntry("MachineVerification", authapp.Name + " " + authapp.Scope + " " + authapp.IpVersion);
}
catch (Exception ex)
{
EventLog.WriteEntry("MachineVerification", "MROW!" + ex.Message);
return false;
}
return true;
}
}