public static void Logout(FritzBoxSession session) { HttpGetRaw(loginUrl + "?sid=" + session.SessionID + "&logout=1"); }
static void Main(string[] args) { bool startCapture = false; bool showExtcapDlts = false; bool showExtcapConfig = false; string fifo = string.Empty; string username = string.Empty; string password = string.Empty; string ifaceorminor = string.Empty; int snaplen = 1600; for (int i = 0; i < args.Length; i++) { if (args[i] == "--extcap-version") { PrintExtcapVersion(); return; } if (args[i] == "--extcap-interfaces") { PrintExtcapInterfaces(); return; } if (args[i] == "--capture") { startCapture = true; } if (args[i] == "--extcap-dlts") { showExtcapDlts = true; } if (args[i] == "--extcap-config") { showExtcapConfig = true; } if (i + 1 < args.Length) { if (args[i] == "--extcap-interface") { i += 1; } if (args[i] == "--fifo") { fifo = args[i += 1]; } if (args[i] == "--username") { username = args[i += 1]; } if (args[i] == "--password") { password = args[i += 1]; } if (args[i] == "--ifaceorminor") { ifaceorminor = args[i += 1]; } if (args[i] == "--snaplen") { snaplen = int.Parse(args[i += 1]); } } } if (showExtcapDlts) { PrintExtcapDlts(string.Empty); return; } if (showExtcapConfig) { PrintExtcapConfig(string.Empty); return; } if (startCapture && fifo.Length != 0 && ifaceorminor.Length != 0) { var fifoHandle = Win32.CreateFile(fifo, 0x40000000, 0, IntPtr.Zero, 3, 0, IntPtr.Zero); using (var file = new FileStream(fifoHandle, FileAccess.Write)) { var session = FritzBoxSession.Login(username, password); try { using (Stream stream = session.Capture(ifaceorminor, snaplen)) { stream.CopyTo(file, snaplen); } } finally { FritzBoxSession.Logout(session); } } } }