Linux で MonoDevelop を使用して Port Knocking アプリケーションを開発しています。サーバー アプリケーションは iptables を使用して、次のコマンドで特定のポートを開閉します。
iptables -A INPUT -j DROP
次のような特定のルールを正常に適用しています。
iptables -A INPUT -p udp --dport 606:610 -j LOG
次に、ノックリクエストを送信するために UdpClient でクライアントアプリケーションを作成しました
private static UdpClient udp;
public static void sendmessage (string message, string host, short port)
{
try
{
IPAddress ip=IPAddress.Parse(host);
if(udp==null)
udp=new UdpClient();
byte[] b=ASCIIEncoding.ASCII.GetBytes(message);
udp.Send(b,b.Length,new IPEndPoint(ip,port));
}
catch (Exception exc)
{
throw exc;
}
}
しかし、このクライアントアプリはクラッシュし、サーバーがすべてのポートを閉じたときに例外が発生しているようです。
サーバーが特定のポートを閉じている/開いているかどうかを気にしない、データパケットを送信するためのソリューションはありますか?