Compare commits

...

2 Commits

Author SHA1 Message Date
afonsofrancof 9652501af4 fix(scripts): fix urls in run.sh 2026-07-09 22:58:15 +01:00
afonsofrancof b326d0557d fix(scripts): improve merge_pcap.py 2026-07-09 22:53:53 +01:00
2 changed files with 32 additions and 40 deletions
+8 -16
View File
@@ -16,7 +16,6 @@ import dpkt
DEFAULT_LOCAL_IP = "192.168.100.2" # netns veth1 address DEFAULT_LOCAL_IP = "192.168.100.2" # netns veth1 address
DEFAULT_PROVIDERS = ["adguard", "cloudflare", "google", "quad9"]
class PacketSummary(NamedTuple): class PacketSummary(NamedTuple):
@@ -50,17 +49,12 @@ def parse_config_from_filename(filename: str) -> dict:
} }
def find_pcap_files(input_dir: Path, providers: List[str]) -> List[Path]: def find_pcap_files(input_dir: Path) -> List[Path]:
files: List[Path] = [] files: List[Path] = []
for provider in providers: for p in input_dir.rglob("*.pcap"):
provider_path = input_dir / provider if ".bak" not in p.name:
if not provider_path.exists(): files.append(p)
print(f" ⚠ Missing provider directory: {provider}") return sorted(files)
continue
for p in sorted(provider_path.glob("*.pcap")):
if ".bak" not in p.name:
files.append(p)
return files
def summarize_pcap(pcap_path: Path, local_ip_bytes: bytes) -> PacketSummary: def summarize_pcap(pcap_path: Path, local_ip_bytes: bytes) -> PacketSummary:
@@ -100,10 +94,10 @@ def summarize_pcap(pcap_path: Path, local_ip_bytes: bytes) -> PacketSummary:
) )
def merge_pcap_files(input_dir: Path, output_path: Path, local_ip: str, providers: List[str]): def merge_pcap_files(input_dir: Path, output_path: Path, local_ip: str):
local_ip_bytes = socket.inet_aton(local_ip) local_ip_bytes = socket.inet_aton(local_ip)
pcap_files = find_pcap_files(input_dir, providers) pcap_files = find_pcap_files(input_dir)
if not pcap_files: if not pcap_files:
print("No .pcap files found.") print("No .pcap files found.")
return return
@@ -167,11 +161,9 @@ def main():
parser.add_argument("-o", "--output", default="dns_results_pcap.csv", help="Output CSV path") parser.add_argument("-o", "--output", default="dns_results_pcap.csv", help="Output CSV path")
parser.add_argument("--local-ip", default=DEFAULT_LOCAL_IP, parser.add_argument("--local-ip", default=DEFAULT_LOCAL_IP,
help=f"Local netns veth IP for direction detection (default: {DEFAULT_LOCAL_IP})") help=f"Local netns veth IP for direction detection (default: {DEFAULT_LOCAL_IP})")
parser.add_argument("--providers", nargs="+", default=DEFAULT_PROVIDERS,
help="Provider subdirectory names to scan")
args = parser.parse_args() args = parser.parse_args()
merge_pcap_files(Path(args.input_dir), Path(args.output), args.local_ip, args.providers) merge_pcap_files(Path(args.input_dir), Path(args.output), args.local_ip)
return 0 return 0
+24 -24
View File
@@ -94,28 +94,28 @@ add() { # add <name> <url> <dnssec> <auth> <keepalive>
# All transports. # All transports.
add google-dotcp "dotcp://8.8.8.8:53" false false false add google-dotcp "dotcp://8.8.8.8:53" false false false
add cloudflare-dotcp "dotcp://1.1.1.1:53" false false false add cloudflare-dotcp "dotcp://1.1.1.1:53" false false false
add quad9-dotcp "dotcp://9.9.9.9:53" false false false add quad9-dotcp "dotcp://9.9.9.10:53" false false false
add adguard-dotcp "dotcp://dns.adguard-dns.com:53" false false false add adguard-dotcp "dotcp://94.140.14.140:53" false false false
add google-dot "tls://8.8.8.8:853" false false false add google-dot "tls://8.8.8.8:853" false false false
add cloudflare-dot "tls://1.1.1.1:853" false false false add cloudflare-dot "tls://1.1.1.1:853" false false false
add quad9-dot "tls://9.9.9.9:853" false false false add quad9-dot "tls://9.9.9.10:853" false false false
add adguard-dot "tls://dns.adguard-dns.com:853" false false false add adguard-dot "tls://94.140.14.140:853" false false false
add google-doh "https://dns.google/dns-query" false false false add google-doh "https://dns.google/dns-query" false false false
add cloudflare-doh "https://cloudflare-dns.com/dns-query" false false false add cloudflare-doh "https://cloudflare-dns.com/dns-query" false false false
add quad9-doh "https://dns10.quad9.net/dns-query" false false false add quad9-doh "https://dns10.quad9.net/dns-query" false false false
add adguard-doh "https://dns.adguard-dns.com/dns-query" false false false add adguard-doh "https://unfiltered.adguard-dns.com/dns-query" false false false
add google-doh3 "doh3://dns.google/dns-query" false false false add google-doh3 "doh3://dns.google/dns-query" false false false
add cloudflare-doh3 "doh3://cloudflare-dns.com/dns-query" false false false add cloudflare-doh3 "doh3://cloudflare-dns.com/dns-query" false false false
add adguard-doh3 "doh3://dns.adguard-dns.com/dns-query" false false false add adguard-doh3 "doh3://unfiltered.adguard-dns.com/dns-query" false false false
add adguard-doq "doq://dns.adguard-dns.com:853" false false false add adguard-doq "doq://unfiltered.adguard-dns.com:853" false false false
add google-doudp "udp://8.8.8.8:53" false false false add google-doudp "udp://8.8.8.8:53" false false false
add cloudflare-doudp "udp://1.1.1.1:53" false false false add cloudflare-doudp "udp://1.1.1.1:53" false false false
add quad9-doudp "udp://9.9.9.9:53" false false false add quad9-doudp "udp://9.9.9.10:53" false false false
add adguard-doudp "udp://dns.adguard-dns.com:53" false false false add adguard-doudp "udp://94.140.14.140:53" false false false
add adguard-dnscrypt "sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20" false false false add adguard-dnscrypt "sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20" false false false
add quad9-dnscrypt "sdns://AQMAAAAAAAAAFDE0OS4xMTIuMTEyLjExMjo4NDQzIGfIR7jIdYzRICRVQ751Z0bfNN8dhMALjEcDaN-CHYY-GTIuZG5zY3J5cHQtY2VydC5xdWFkOS5uZXQ" false false false add quad9-dnscrypt "sdns://AQMAAAAAAAAAFDE0OS4xMTIuMTEyLjExMjo4NDQzIGfIR7jIdYzRICRVQ751Z0bfNN8dhMALjEcDaN-CHYY-GTIuZG5zY3J5cHQtY2VydC5xdWFkOS5uZXQ" false false false
@@ -124,50 +124,50 @@ add quad9-dnscrypt "sdns://AQMAAAAAAAAAFDE0OS4xMTIuMTEyLjExMjo4NDQzIGfIR7jIdY
# QUIC makes no sense cause of 0-RTT. # QUIC makes no sense cause of 0-RTT.
add google-dotcp "dotcp://8.8.8.8:53" false false true add google-dotcp "dotcp://8.8.8.8:53" false false true
add cloudflare-dotcp "dotcp://1.1.1.1:53" false false true add cloudflare-dotcp "dotcp://1.1.1.1:53" false false true
add quad9-dotcp "dotcp://9.9.9.9:53" false false true add quad9-dotcp "dotcp://9.9.9.10:53" false false true
add adguard-dotcp "dotcp://dns.adguard-dns.com:53" false false true add adguard-dotcp "dotcp://94.140.14.140:53" false false true
add google-dot "tls://8.8.8.8:853" false false true add google-dot "tls://8.8.8.8:853" false false true
add cloudflare-dot "tls://1.1.1.1:853" false false true add cloudflare-dot "tls://1.1.1.1:853" false false true
add quad9-dot "tls://9.9.9.9:853" false false true add quad9-dot "tls://9.9.9.10:853" false false true
add adguard-dot "tls://dns.adguard-dns.com:853" false false true add adguard-dot "tls://94.140.14.140:853" false false true
add google-doh "https://dns.google/dns-query" false false true add google-doh "https://dns.google/dns-query" false false true
add cloudflare-doh "https://cloudflare-dns.com/dns-query" false false true add cloudflare-doh "https://cloudflare-dns.com/dns-query" false false true
add quad9-doh "https://dns10.quad9.net/dns-query" false false true add quad9-doh "https://dns10.quad9.net/dns-query" false false true
add adguard-doh "https://dns.adguard-dns.com/dns-query" false false true add adguard-doh "https://unfiltered.adguard-dns.com/dns-query" false false true
# DNSSEC trust - non-persistent. # DNSSEC trust - non-persistent.
add google-dotcp "dotcp://8.8.8.8:53" true false false add google-dotcp "dotcp://8.8.8.8:53" true false false
add cloudflare-dotcp "dotcp://1.1.1.1:53" true false false add cloudflare-dotcp "dotcp://1.1.1.1:53" true false false
add quad9-dotcp "dotcp://9.9.9.9:53" true false false add quad9-dotcp "dotcp://9.9.9.10:53" true false false
add adguard-dotcp "dotcp://dns.adguard-dns.com:53" true false false add adguard-dotcp "dotcp://94.140.14.140:53" true false false
add google-dot "tls://8.8.8.8:853" true false false add google-dot "tls://8.8.8.8:853" true false false
add cloudflare-dot "tls://1.1.1.1:853" true false false add cloudflare-dot "tls://1.1.1.1:853" true false false
add quad9-dot "tls://9.9.9.9:853" true false false add quad9-dot "tls://9.9.9.10:853" true false false
add adguard-dot "tls://dns.adguard-dns.com:853" true false false add adguard-dot "tls://94.140.14.140:853" true false false
add google-doh "https://dns.google/dns-query" true false false add google-doh "https://dns.google/dns-query" true false false
add cloudflare-doh "https://cloudflare-dns.com/dns-query" true false false add cloudflare-doh "https://cloudflare-dns.com/dns-query" true false false
add quad9-doh "https://dns10.quad9.net/dns-query" true false false add quad9-doh "https://dns10.quad9.net/dns-query" true false false
add adguard-doh "https://dns.adguard-dns.com/dns-query" true false false add adguard-doh "https://unfiltered.adguard-dns.com/dns-query" true false false
add google-doh3 "doh3://dns.google/dns-query" true false false add google-doh3 "doh3://dns.google/dns-query" true false false
add cloudflare-doh3 "doh3://cloudflare-dns.com/dns-query" true false false add cloudflare-doh3 "doh3://cloudflare-dns.com/dns-query" true false false
add adguard-doh3 "doh3://dns.adguard-dns.com/dns-query" true false false add adguard-doh3 "doh3://unfiltered.adguard-dns.com/dns-query" true false false
add adguard-doq "doq://dns.adguard-dns.com:853" true false false add adguard-doq "doq://unfiltered.adguard-dns.com:853" true false false
add google-doudp "udp://8.8.8.8:53" true false false add google-doudp "udp://8.8.8.8:53" true false false
add cloudflare-doudp "udp://1.1.1.1:53" true false false add cloudflare-doudp "udp://1.1.1.1:53" true false false
add quad9-doudp "udp://9.9.9.9:53" true false false add quad9-doudp "udp://9.9.9.10:53" true false false
add adguard-doudp "udp://dns.adguard-dns.com:53" true false false add adguard-doudp "udp://94.140.14.140:53" true false false
add adguard-dnscrypt "sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20" true false false add adguard-dnscrypt "sdns://AQMAAAAAAAAAETk0LjE0MC4xNC4xNDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20" true false false
add quad9-dnscrypt "sdns://AQMAAAAAAAAAFDE0OS4xMTIuMTEyLjExMjo4NDQzIGfIR7jIdYzRICRVQ751Z0bfNN8dhMALjEcDaN-CHYY-GTIuZG5zY3J5cHQtY2VydC5xdWFkOS5uZXQ" true false false add quad9-dnscrypt "sdns://AQMAAAAAAAAAFDE0OS4xMTIuMTEyLjExMjo4NDQzIGfIR7jIdYzRICRVQ751Z0bfNN8dhMALjEcDaN-CHYY-GTIuZG5zY3J5cHQtY2VydC5xdWFkOS5uZXQ" true false false
# DNSSEC auth - DoUDP only. # DNSSEC auth - DoUDP only.
# auth walks the chain of trust over plain DoUDP regardless of the protocol. # auth walks the chain of trust over plain DoUDP regardless of the protocol.
add adguard-doudp "udp://dns.adguard-dns.com:53" true true false add adguard-doudp "udp://unfiltered.adguard-dns.com:53" true true false
# Function to get flags suffix for filename # Function to get flags suffix for filename
get_flags_suffix() { get_flags_suffix() {