From c8e526ead35b868733f57b4c114062a48b78a817 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Wed, 22 Jul 2020 17:23:24 -0700 Subject: [PATCH] fixes for bsd-style ipv6 output --- jc/parsers/traceroute.py | 11 ++++++++--- tests/fixtures/osx-10.14.6/traceroute-q.out | 4 ++++ 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 tests/fixtures/osx-10.14.6/traceroute-q.out diff --git a/jc/parsers/traceroute.py b/jc/parsers/traceroute.py index 39db0b22..6fe40fd4 100644 --- a/jc/parsers/traceroute.py +++ b/jc/parsers/traceroute.py @@ -45,9 +45,10 @@ Copyright (C) 2015 Luis Benitez Parses the output of a traceroute execution into an AST (Abstract Syntax Tree). """ -RE_HEADER = re.compile(r'(\S+)\s+\((?:(\d+\.\d+\.\d+\.\d+)|([0-9a-fA-F:]+))\)') +RE_HEADER = re.compile(r'(\S+)\s+\((?:(\d+\.\d+\.\d+\.\d+|[0-9a-fA-F:]+))\)') -RE_PROBE_NAME_IP = re.compile(r'(\S+)\s+\((?:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|([0-9a-fA-F:]+))\)+') +RE_PROBE_NAME_IP = re.compile(r'(\S+)\s+\((?:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|[0-9a-fA-F:]+))\)+') +RE_PROBE_BSD_IPV6 = re.compile(r'\b(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}\b') RE_PROBE_ANNOTATION = re.compile(r'^(!\w*)$') RE_PROBE_TIMEOUT = re.compile(r'^(\*)$') @@ -174,9 +175,13 @@ def loads(data): probe_asn = None probe_name_ip_match = RE_PROBE_NAME_IP.search(hop_string) + probe_bsd_ipv6_match = RE_PROBE_BSD_IPV6.search(hop_string) if probe_name_ip_match: probe_name = probe_name_ip_match.group(1) - probe_ip = probe_name_ip_match.group(2) or probe_name_ip_match.group(3) + probe_ip = probe_name_ip_match.group(2) + elif probe_bsd_ipv6_match: + probe_name = None + probe_ip = probe_bsd_ipv6_match.group(0) else: probe_name = None probe_ip = None diff --git a/tests/fixtures/osx-10.14.6/traceroute-q.out b/tests/fixtures/osx-10.14.6/traceroute-q.out new file mode 100644 index 00000000..6e181bc7 --- /dev/null +++ b/tests/fixtures/osx-10.14.6/traceroute-q.out @@ -0,0 +1,4 @@ +traceroute to 8.8.8.8 (8.8.8.8), 3 hops max, 52 byte packets + 1 dsldevice (192.168.1.254) 3.317 ms 6.373 ms 6.967 ms 5.299 ms 4.605 ms + 2 76-220-24-1.lightspeed.sntcca.sbcglobal.net (76.220.24.1) 28.829 ms 20.073 ms 26.238 ms 22.052 ms 22.519 ms + 3 * * * * *