private void SnifferMain_Load(object sender, EventArgs e) { // Initialize capture filter SnifferFilter filter = new SnifferFilter( true, true, true, null, -1, null, -1); SnifferConfig.Filter = filter; }
public void TestFilterGenerator() { SnifferFilter filter = new SnifferFilter( true, true, true, null, -1, null, -1); // Protocol test string filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\tcp) or (ip proto \\udp))", filter_s); filter.bARP = false; filter.bTCP = false; filter.bUDP = false; filter_s = filter.FilterString; Assert.AreEqual("ip", filter_s); filter.bUDP = true; filter.bARP = true; filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\udp))", filter_s); // IP address test byte[] src = { 192, 168, 1, 1 }; filter.srcIP = new IPAddress(src); filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\udp)) and (src host 192.168.1.1)", filter_s); filter.destPort = 80; filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\udp)) and (dst port 80) and (src host 192.168.1.1)", filter_s); filter.srcPort = 4541; filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\udp)) and (dst port 80) and (src host 192.168.1.1) and (src port 4541)", filter_s); byte[] dst = { 8, 8, 8, 8 }; filter.destIP = new IPAddress(dst); filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\udp)) and (dst host 8.8.8.8) and (dst port 80) and (src host 192.168.1.1) and (src port 4541)", filter_s); filter.srcIP = null; filter_s = filter.FilterString; Assert.AreEqual("(arp or (ip proto \\udp)) and (dst host 8.8.8.8) and (dst port 80) and (src port 4541)", filter_s); }
private void FilterDlg_Activated(object sender, EventArgs e) { // Set control status according to filter settings SnifferFilter filter = SnifferConfig.Filter; arp_chk.Checked = filter.bARP; tcp_chk.Checked = filter.bTCP; udp_chk.Checked = filter.bUDP; bool bSrc = filter.bSrc; src_ip_chk.Checked = bSrc; src_ip_label.Enabled = bSrc; src_port_label.Enabled = bSrc; src_ip.Enabled = bSrc; if (filter.srcIP != null) { src_ip.SetAddressBytes(filter.srcIP.GetAddressBytes()); } src_port.Enabled = bSrc; if (filter.srcPort != -1) { src_port.Text = filter.srcPort.ToString(); } bool bDest = filter.bDest; dest_ip_chk.Checked = bDest; dest_ip_label.Enabled = bDest; dest_ip.Enabled = bDest; if (filter.destIP != null) { dest_ip.SetAddressBytes(filter.destIP.GetAddressBytes()); } dest_port.Enabled = bDest; if (filter.destPort != -1) { dest_port.Text = filter.destPort.ToString(); } dest_port_label.Enabled = bDest; }
private void ok_btn_Click(object sender, EventArgs e) { int iport; bool bOK; string port; byte[] addr_b; byte[] empty = { 0, 0, 0, 0 }; // Save current config SnifferFilter filter = SnifferConfig.Filter; filter.bARP = arp_chk.Checked; filter.bTCP = tcp_chk.Checked; filter.bUDP = udp_chk.Checked; if (dest_ip_chk.Checked) { addr_b = dest_ip.GetAddressBytes(); if (!addr_b.SequenceEqual(empty)) { filter.destIP = new IPAddress(addr_b); } port = dest_port.Text; bOK = int.TryParse(port, out iport); if (bOK && iport < 0xFFFF && iport >= 0) { filter.destPort = iport; } else { filter.destPort = -1; } } else { filter.destIP = null; filter.destPort = -1; } if (src_ip_chk.Checked) { addr_b = src_ip.GetAddressBytes(); if (!addr_b.SequenceEqual(empty)) { filter.srcIP = new IPAddress(addr_b); } port = src_port.Text; bOK = int.TryParse(port, out iport); if (bOK && iport < 0xFFFF && iport >= 0) { filter.srcPort = iport; } else { filter.srcPort = -1; } } else { filter.srcIP = null; filter.srcPort = -1; } this.DialogResult = DialogResult.OK; this.Close(); }