#!/usr/bin/env p2sh if len(argv) < 3 { println("Usage: {} ", argv[0]); exit(1); } let f1 = pcap_open(argv[1]); if is_error(f1) { puts(f1); exit(1); } let f2 = pcap_open(argv[2], "w"); if is_error(f2) { puts(f2); exit(1); } let pcap = null; while pcap = pcap_read_next(f1) { let sec = pcap.sec; let usec = pcap.usec; let eth = pcap.eth; match eth.type { 0x0800 => { eth.ipv4; } 0x8100 => { eth.vlan.id = eth.vlan.id + 7; let prio = eth.vlan.priority = 1; match eth.vlan.type { 0x8100 => { eth.vlan.vlan.id = eth.vlan.vlan.id + 3; eth.vlan.vlan.priority = 1; eth.vlan.vlan.dei = true; match eth.vlan.vlan.type { 0x0800 => { eth.vlan.vlan.ipv4; } } } 0x0800 => { eth.vlan.ipv4; } } } } println("[{}.{}] {}", sec, usec, eth); pcap_write(f2, pcap); }