def filter_ip(): s_in = sm.get_and_bind_socket(5006) s_in.listen(1) conn, address = s_in.accept() s_out = sm.get_socket() s_out.connect((sm.TCP_IP, 5007)) while 1: try: pkt = conn.recv(sm.BUFFER_SIZE) if not pkt: pc.chart_ip_route() pc.chart_ip_aux() conn.close() s_out.close() break eth = dpkt.ethernet.Ethernet(pkt) ip = eth.data pc.data_ip_route(print_packets.ip_to_str(ip.src), print_packets.ip_to_str(ip.dst)) pc.data_ip_aux(str(ip.len), str(ip.ttl)) s_out.send(pkt) except AttributeError: pass
def load_and_filter_tcp(): f = open('simple.pcap', 'rb') p = dpkt.pcap.Reader(f) s = sm.get_socket() s.connect(sm.TCP_TUPLE) for ts, pkt in p: try: eth = dpkt.ethernet.Ethernet(pkt) ip = eth.data tcp = ip.data if tcp.sport == 80 and len(tcp.data) > 0: s.send(pkt) except AttributeError: pass s.close() f.close()
def filter_eth(): s_in = sm.get_and_bind_socket() s_in.listen(1) conn, address = s_in.accept() s_out = sm.get_socket() s_out.connect((sm.TCP_IP, 5006)) while 1: pkt = conn.recv(sm.BUFFER_SIZE) if not pkt: pc.chart_eth_route() pc.chart_eth_type() conn.close() s_out.close() break eth = dpkt.ethernet.Ethernet(pkt) pc.data_eth_route(print_packets.mac_addr(eth.src), print_packets.mac_addr(eth.dst)) pc.data_eth_type(str(eth.type)) s_out.send(pkt)