mirror of
https://github.com/Horizontal42/netsleuth.git
synced 2026-11-10 15:42:10 +03:00
Scoped down from the original plan: traceroute and --path-diversity's v6 legs are deferred as a documented follow-up, since extending the trace cascade to a second address family is real additional work that doesn't share the trick that made latency cheap. Latency alone captures the core value (a tunneled or poorly-peered IPv6 path is otherwise invisible to tools that only report whichever stack the OS picked) at a fraction of the risk. Turns out no family-detection code was needed at all. icmp_win's ping_samples_win() calls the IPv4-only socket.gethostbyname(), which raises on a v6 literal - already caught by ping_host()'s existing bare except-fallback to TCP, which handles v6 fine via asyncio.open_connection. icmplib handles v6 natively on Linux/macOS. So v6 hosts ride the existing ping_fanout() completely unmodified, tagged with a "<label>-v6" PingResult label instead of a parallel report section - exporter, metrics.py and compare.py needed zero changes since they already key everything off label. New probing.reference_hosts_v6/probing.ipv6 (auto/on/off) config, --ipv6/--no-ipv6 override, interpret.dual_family_findings() for net.ipv6_unreachable and latency.v6_much_slower. Live-tested with --ipv6 forced on a v6-unreachable host: every row fell back to method=tcp with 100% loss as expected. Caught and fixed a wording bug in the same pass - the unreachable finding said "on this dual-stack connection" unconditionally, which is wrong when --ipv6 forces the check on a host that isn't actually dual-stack. Part of plans/zesty-zooming-wilkinson.md (gitignored). |
||
|---|---|---|
| .. | ||
| fixtures | ||
| conftest.py | ||
| test_alerting.py | ||
| test_bgp.py | ||
| test_bgp_path.py | ||
| test_captive_portal.py | ||
| test_cgnat_nat64.py | ||
| test_cli_formats.py | ||
| test_compare.py | ||
| test_config.py | ||
| test_dns_advanced.py | ||
| test_dns_leak.py | ||
| test_dnsbl_decode.py | ||
| test_dpi_check.py | ||
| test_ecmp.py | ||
| test_exporter.py | ||
| test_exporter_l7.py | ||
| test_history.py | ||
| test_hop_asn.py | ||
| test_icmp_win_parse.py | ||
| test_icmp_win_trace.py | ||
| test_iface.py | ||
| test_interpret.py | ||
| test_interpret_l7.py | ||
| test_ip_geo_normalize.py | ||
| test_metrics.py | ||
| test_models.py | ||
| test_netinfo.py | ||
| test_orchestration.py | ||
| test_prefix_benchmark.py | ||
| test_prober_stats.py | ||
| test_reputation.py | ||
| test_speed_cloudflare.py | ||
| test_speed_fastcom.py | ||
| test_speed_math.py | ||
| test_stats.py | ||
| test_tls_rtt.py | ||
| test_traceparse.py | ||
| test_traceroute_cascade.py | ||
| test_trend.py | ||
| test_watch.py | ||