diff --git a/CHANGELOG b/CHANGELOG index 317366db..4d8f2e37 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ jc changelog 20200730 v1.13.2 - Add key/value parser (wrapper for ini parser) +- Update traceroute parser to more gracefully handle missing header row +- Update traceroute parser to handle annotations +- Update traceroute parser to only return successful probes 20200727 v1.13.1 - Add route -6 tests diff --git a/jc/parsers/traceroute.py b/jc/parsers/traceroute.py index ed4c89c9..37348a82 100644 --- a/jc/parsers/traceroute.py +++ b/jc/parsers/traceroute.py @@ -136,7 +136,7 @@ RE_PROBE_NAME_IP = re.compile(r'(\S+)\s+\((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|[0 RE_PROBE_BSD_IPV6 = re.compile(r'\b(?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}\b') RE_HOP = re.compile(r'^\s*(\d+)?\s+(.+)$') RE_PROBE_ASN = re.compile(r'\[AS(\d+)\]') -RE_PROBE_RTT_ANNOTATION = re.compile(r'(\d+\.?\d+)?\s+ms|(\s+\*\s+)\s*(!\S*)?') +RE_PROBE_RTT_ANNOTATION = re.compile(r'(?:(\d+(?:\.?\d+)?)\s+ms|(\s+\*\s+))\s*(!\S*)?') class Traceroute(object): @@ -209,8 +209,10 @@ def loads(data): # Get headers match_dest = RE_HEADER.search(lines[0]) - dest_name = match_dest.group(1) - dest_ip = match_dest.group(2) + dest_name, dest_ip = None, None + if match_dest: + dest_name = match_dest.group(1) + dest_ip = match_dest.group(2) # The Traceroute node is the root of the tree traceroute = Traceroute(dest_name, dest_ip) @@ -272,7 +274,10 @@ def loads(data): rtt=probe_rtt, annotation=probe_annotation ) - hop.add_probe(probe) + + # only add probe if there is data + if any([probe_name, probe_ip, probe_asn, probe_rtt, probe_annotation]): + hop.add_probe(probe) return traceroute @@ -380,11 +385,16 @@ def parse(data, raw=False, quiet=False): new_data.append(data_line) else: continue - data = '\n'.join(new_data) - # check if header row exists, otherwise raise exception - if not data.splitlines()[0].startswith('traceroute to ') and not data.splitlines()[0].startswith('traceroute6 to '): - raise ParseError('Traceroute header line not found. Be sure to redirect STDERR to STDOUT on some operating systems.') + # check if header row exists, otherwise add a dummy header + if not new_data[0].startswith('traceroute to ') and not new_data[0].startswith('traceroute6 to '): + new_data[:0] = ['traceroute to <<_>> (<<_>>), 30 hops max, 60 byte packets'] + + # print warning to STDERR + if not quiet: + jc.utils.warning_message('No header row found. For destination info redirect STDERR to STDOUT') + + data = '\n'.join(new_data) tr = loads(data) hops = tr.hops diff --git a/tests/fixtures/centos-7.7/traceroute.json b/tests/fixtures/centos-7.7/traceroute.json index 1946407f..4ef1dfa8 100644 --- a/tests/fixtures/centos-7.7/traceroute.json +++ b/tests/fixtures/centos-7.7/traceroute.json @@ -1 +1 @@ -{"destination_ip": "151.101.197.67", "destination_name": "www.cnn.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 4.024}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 3.683}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 3.706}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 24.038}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 23.911}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 23.724}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 42.273}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 42.213}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 42.083}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "12.122.2.77", "name": "12.122.2.77", "rtt": 36.789}, {"annotation": null, "asn": null, "ip": "12.122.2.77", "name": "12.122.2.77", "rtt": 43.691}, {"annotation": null, "asn": null, "ip": "12.122.2.77", "name": "12.122.2.77", "rtt": 36.597}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "12.122.2.94", "name": "sd2ca21crs.ip.att.net", "rtt": 41.587}, {"annotation": null, "asn": null, "ip": "12.122.2.94", "name": "sd2ca21crs.ip.att.net", "rtt": 40.24}, {"annotation": null, "asn": null, "ip": "12.122.2.94", "name": "sd2ca21crs.ip.att.net", "rtt": 44.659}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "12.123.215.161", "name": "12.123.215.161", "rtt": 37.858}, {"annotation": null, "asn": null, "ip": "12.123.215.161", "name": "12.123.215.161", "rtt": 37.321}, {"annotation": null, "asn": null, "ip": "12.123.215.161", "name": "12.123.215.161", "rtt": 37.092}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 13, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 14, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 15, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 16, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 17, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 18, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 19, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 20, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 21, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 22, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 23, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 24, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 25, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 26, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 27, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 28, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 29, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 30, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "151.101.197.67", "destination_name": "www.cnn.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 4.024}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 3.683}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 3.706}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 24.038}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 23.911}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 23.724}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 42.273}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 42.213}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 42.083}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "12.122.2.77", "name": "12.122.2.77", "rtt": 36.789}, {"annotation": null, "asn": null, "ip": "12.122.2.77", "name": "12.122.2.77", "rtt": 43.691}, {"annotation": null, "asn": null, "ip": "12.122.2.77", "name": "12.122.2.77", "rtt": 36.597}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "12.122.2.94", "name": "sd2ca21crs.ip.att.net", "rtt": 41.587}, {"annotation": null, "asn": null, "ip": "12.122.2.94", "name": "sd2ca21crs.ip.att.net", "rtt": 40.24}, {"annotation": null, "asn": null, "ip": "12.122.2.94", "name": "sd2ca21crs.ip.att.net", "rtt": 44.659}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "12.123.215.161", "name": "12.123.215.161", "rtt": 37.858}, {"annotation": null, "asn": null, "ip": "12.123.215.161", "name": "12.123.215.161", "rtt": 37.321}, {"annotation": null, "asn": null, "ip": "12.123.215.161", "name": "12.123.215.161", "rtt": 37.092}]}, {"hop": 8, "probes": []}, {"hop": 9, "probes": []}, {"hop": 10, "probes": []}, {"hop": 11, "probes": []}, {"hop": 12, "probes": []}, {"hop": 13, "probes": []}, {"hop": 14, "probes": []}, {"hop": 15, "probes": []}, {"hop": 16, "probes": []}, {"hop": 17, "probes": []}, {"hop": 18, "probes": []}, {"hop": 19, "probes": []}, {"hop": 20, "probes": []}, {"hop": 21, "probes": []}, {"hop": 22, "probes": []}, {"hop": 23, "probes": []}, {"hop": 24, "probes": []}, {"hop": 25, "probes": []}, {"hop": 26, "probes": []}, {"hop": 27, "probes": []}, {"hop": 28, "probes": []}, {"hop": 29, "probes": []}, {"hop": 30, "probes": []}]} diff --git a/tests/fixtures/freebsd12/traceroute.json b/tests/fixtures/freebsd12/traceroute.json index f776d28d..a1932dcc 100644 --- a/tests/fixtures/freebsd12/traceroute.json +++ b/tests/fixtures/freebsd12/traceroute.json @@ -1 +1 @@ -{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 3.263}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 4.146}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 4.273}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.839}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 23.434}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 22.032}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 33.17}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 26.593}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 32.851}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 26.045}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 29.235}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 28.28}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 25.3}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 24.156}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 24.849}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "12.255.10.226", "name": "12.255.10.226", "rtt": 25.375}, {"annotation": null, "asn": null, "ip": "12.255.10.224", "name": "12.255.10.224", "rtt": 24.011}, {"annotation": null, "asn": null, "ip": "12.255.10.224", "name": "12.255.10.224", "rtt": 25.322}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "108.170.243.1", "name": "108.170.243.1", "rtt": 29.376}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 23.228}, {"annotation": null, "asn": null, "ip": "209.85.252.251", "name": "209.85.252.251", "rtt": 24.548}, {"annotation": null, "asn": null, "ip": "108.170.237.23", "name": "108.170.237.23", "rtt": 24.332}]}]} +{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 3.263}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 4.146}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice.attlocal.net", "rtt": 4.273}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.839}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 23.434}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 22.032}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 33.17}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 26.593}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 32.851}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 26.045}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 29.235}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 28.28}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 25.3}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 24.156}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 24.849}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "12.255.10.226", "name": "12.255.10.226", "rtt": 25.375}, {"annotation": null, "asn": null, "ip": "12.255.10.224", "name": "12.255.10.224", "rtt": 24.011}, {"annotation": null, "asn": null, "ip": "12.255.10.224", "name": "12.255.10.224", "rtt": 25.322}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "108.170.243.1", "name": "108.170.243.1", "rtt": 29.376}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 23.228}, {"annotation": null, "asn": null, "ip": "209.85.252.251", "name": "209.85.252.251", "rtt": 24.548}, {"annotation": null, "asn": null, "ip": "108.170.237.23", "name": "108.170.237.23", "rtt": 24.332}]}]} diff --git a/tests/fixtures/freebsd12/traceroute6.json b/tests/fixtures/freebsd12/traceroute6.json index f8864ad2..ef90b988 100644 --- a/tests/fixtures/freebsd12/traceroute6.json +++ b/tests/fixtures/freebsd12/traceroute6.json @@ -1 +1 @@ -{"destination_ip": "2a04:4e42::323", "destination_name": "turner-tls.map.fastly.net", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 27.603}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 28.659}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 33.235}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 36.731}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 28.875}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 28.959}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 13, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 14, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 15, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 16, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 17, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 18, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 19, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 20, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 21, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 22, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 23, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 24, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 25, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 26, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 27, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 28, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 29, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 30, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 31, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "2a04:4e42::323", "destination_name": "turner-tls.map.fastly.net", "hops": [{"hop": 1, "probes": []}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 27.603}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 28.659}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 33.235}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 36.731}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 28.875}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 28.959}]}, {"hop": 5, "probes": []}, {"hop": 6, "probes": []}, {"hop": 7, "probes": []}, {"hop": 8, "probes": []}, {"hop": 9, "probes": []}, {"hop": 10, "probes": []}, {"hop": 11, "probes": []}, {"hop": 12, "probes": []}, {"hop": 13, "probes": []}, {"hop": 14, "probes": []}, {"hop": 15, "probes": []}, {"hop": 16, "probes": []}, {"hop": 17, "probes": []}, {"hop": 18, "probes": []}, {"hop": 19, "probes": []}, {"hop": 20, "probes": []}, {"hop": 21, "probes": []}, {"hop": 22, "probes": []}, {"hop": 23, "probes": []}, {"hop": 24, "probes": []}, {"hop": 25, "probes": []}, {"hop": 26, "probes": []}, {"hop": 27, "probes": []}, {"hop": 28, "probes": []}, {"hop": 29, "probes": []}, {"hop": 30, "probes": []}, {"hop": 31, "probes": []}]} diff --git a/tests/fixtures/generic/traceroute1.json b/tests/fixtures/generic/traceroute1.json index 27b88891..11f0bc25 100644 --- a/tests/fixtures/generic/traceroute1.json +++ b/tests/fixtures/generic/traceroute1.json @@ -1 +1 @@ -{"destination_ip": "173.207.22.152", "destination_name": "http://google.es", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": 1739, "ip": "131.240.100.12", "name": "131.240.100.12", "rtt": 0.676}, {"annotation": null, "asn": 1739, "ip": "131.240.100.12", "name": "131.240.100.12", "rtt": 0.763}, {"annotation": null, "asn": 1739, "ip": "131.240.100.12", "name": "131.240.100.12", "rtt": 0.91}]}, {"hop": 2, "probes": [{"annotation": null, "asn": 1739, "ip": "131.232.1.26", "name": "http://tut1-fw-vlan558.av.tut.fi", "rtt": 0.266}, {"annotation": null, "asn": 1739, "ip": "131.232.1.26", "name": "http://tut1-fw-vlan558.av.tut.fi", "rtt": 0.404}, {"annotation": null, "asn": 1739, "ip": "131.232.1.26", "name": "http://tut1-fw-vlan558.av.tut.fi", "rtt": 0.493}]}, {"hop": 3, "probes": [{"annotation": null, "asn": 1739, "ip": "131.232.1.20", "name": "http://surf-gw-vlan557.av.tut.fi", "rtt": 0.967}, {"annotation": null, "asn": 1739, "ip": "131.232.1.20", "name": "http://surf-gw-vlan557.av.tut.fi", "rtt": 0.961}, {"annotation": null, "asn": 1739, "ip": "131.232.1.20", "name": "http://surf-gw-vlan557.av.tut.fi", "rtt": 1.085}]}, {"hop": 4, "probes": [{"annotation": null, "asn": 1739, "ip": "130.230.1.237", "name": "http://funet-tut6-rtr-xe-0-0-0.cc.tut.fi", "rtt": 1.096}, {"annotation": null, "asn": 1739, "ip": "130.230.1.237", "name": "http://funet-tut6-rtr-xe-0-0-0.cc.tut.fi", "rtt": 1.086}, {"annotation": null, "asn": 1739, "ip": "130.230.1.237", "name": "http://funet-tut6-rtr-xe-0-0-0.cc.tut.fi", "rtt": 1.049}]}, {"hop": 5, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.220", "name": "http://hameenlinna2-et-0-0-0-1.ip.funet.fi", "rtt": 3.81}, {"annotation": null, "asn": 1741, "ip": "86.50.255.220", "name": "http://hameenlinna2-et-0-0-0-1.ip.funet.fi", "rtt": 3.845}, {"annotation": null, "asn": 1741, "ip": "86.50.255.220", "name": "http://hameenlinna2-et-0-0-0-1.ip.funet.fi", "rtt": 3.82}]}, {"hop": 6, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.224", "name": "http://hameenlinna1-et-0-0-1-1.ip.funet.fi", "rtt": 29.055}, {"annotation": null, "asn": 1741, "ip": "86.50.255.224", "name": "http://hameenlinna1-et-0-0-1-1.ip.funet.fi", "rtt": 29.013}, {"annotation": null, "asn": 1741, "ip": "86.50.255.224", "name": "http://hameenlinna1-et-0-0-1-1.ip.funet.fi", "rtt": 28.977}]}, {"hop": 7, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.223", "name": "http://espoo2-et-0-1-2-1.ip.funet.fi", "rtt": 3.468}, {"annotation": null, "asn": 1741, "ip": "86.50.255.223", "name": "http://espoo2-et-0-1-2-1.ip.funet.fi", "rtt": 8.007}, {"annotation": null, "asn": 1741, "ip": "86.50.255.223", "name": "http://espoo2-et-0-1-2-1.ip.funet.fi", "rtt": 7.89}]}, {"hop": 8, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.232", "name": "http://espoo1-et-0-1-7-1.ip.funet.fi", "rtt": 13.498}, {"annotation": null, "asn": 1741, "ip": "86.50.255.232", "name": "http://espoo1-et-0-1-7-1.ip.funet.fi", "rtt": 13.307}, {"annotation": null, "asn": 1741, "ip": "86.50.255.232", "name": "http://espoo1-et-0-1-7-1.ip.funet.fi", "rtt": 13.399}]}, {"hop": 9, "probes": [{"annotation": null, "asn": 2603, "ip": "109.105.102.168", "name": "http://fi-csc2.nordu.net", "rtt": 3.25}, {"annotation": null, "asn": 2603, "ip": "109.105.102.168", "name": "http://fi-csc2.nordu.net", "rtt": 3.268}, {"annotation": null, "asn": 2603, "ip": "109.105.102.168", "name": "http://fi-csc2.nordu.net", "rtt": 3.236}]}, {"hop": 10, "probes": [{"annotation": null, "asn": 2603, "ip": "109.105.97.93", "name": "http://se-fre.nordu.net", "rtt": 9.418}, {"annotation": null, "asn": 2603, "ip": "109.105.97.93", "name": "http://se-fre.nordu.net", "rtt": 9.41}, {"annotation": null, "asn": 2603, "ip": "109.105.97.93", "name": "http://se-fre.nordu.net", "rtt": 9.369}]}, {"hop": 11, "probes": [{"annotation": null, "asn": 2603, "ip": "109.105.97.27", "name": "http://se-kst2.nordu.net", "rtt": 9.617}, {"annotation": null, "asn": 2603, "ip": "109.105.97.27", "name": "http://se-kst2.nordu.net", "rtt": 9.594}, {"annotation": null, "asn": 2603, "ip": "109.105.97.27", "name": "http://se-kst2.nordu.net", "rtt": 9.603}]}, {"hop": 12, "probes": [{"annotation": null, "asn": 15169, "ip": "192.121.80.47", "name": "http://as15169-10g-sk1.sthix.net", "rtt": 10.01}, {"annotation": null, "asn": 15169, "ip": "192.121.80.47", "name": "http://as15169-10g-sk1.sthix.net", "rtt": 9.182}, {"annotation": null, "asn": 15169, "ip": "192.121.80.47", "name": "http://as15169-10g-sk1.sthix.net", "rtt": 44.983}]}, {"hop": 13, "probes": [{"annotation": null, "asn": 15169, "ip": "108.170.254.49", "name": "108.170.254.49", "rtt": 10.852}, {"annotation": null, "asn": 15169, "ip": "108.170.254.49", "name": "108.170.254.49", "rtt": 11.185}, {"annotation": null, "asn": 15169, "ip": "108.170.254.49", "name": "108.170.254.49", "rtt": 10.876}]}, {"hop": 14, "probes": [{"annotation": null, "asn": 15169, "ip": "209.85.242.11", "name": "209.85.242.11", "rtt": 10.192}, {"annotation": null, "asn": 15169, "ip": "209.85.242.11", "name": "209.85.242.11", "rtt": 10.471}, {"annotation": null, "asn": 15169, "ip": "209.85.242.11", "name": "209.85.242.11", "rtt": 10.502}]}, {"hop": 15, "probes": [{"annotation": null, "asn": 15169, "ip": "172.217.21.163", "name": "http://arn11s03-in-f3.1e100.net", "rtt": 9.652}, {"annotation": null, "asn": 15169, "ip": "172.217.21.163", "name": "http://arn11s03-in-f3.1e100.net", "rtt": 9.664}, {"annotation": null, "asn": 15169, "ip": "172.217.21.163", "name": "http://arn11s03-in-f3.1e100.net", "rtt": 9.777}]}]} +{"destination_ip": "173.207.22.152", "destination_name": "http://google.es", "hops": [{"hop": 1, "probes": [{"annotation": "!P", "asn": 1739, "ip": "131.240.100.12", "name": "131.240.100.12", "rtt": 0.676}, {"annotation": "!", "asn": 1739, "ip": "131.240.100.12", "name": "131.240.100.12", "rtt": 0.763}, {"annotation": "!<500>", "asn": 1739, "ip": "131.240.100.12", "name": "131.240.100.12", "rtt": 0.91}]}, {"hop": 2, "probes": [{"annotation": null, "asn": 1739, "ip": "131.232.1.26", "name": "http://tut1-fw-vlan558.av.tut.fi", "rtt": 0.266}, {"annotation": null, "asn": 1739, "ip": "131.232.1.26", "name": "http://tut1-fw-vlan558.av.tut.fi", "rtt": 0.404}, {"annotation": null, "asn": 1739, "ip": "131.232.1.26", "name": "http://tut1-fw-vlan558.av.tut.fi", "rtt": 0.493}]}, {"hop": 3, "probes": [{"annotation": null, "asn": 1739, "ip": "131.232.1.20", "name": "http://surf-gw-vlan557.av.tut.fi", "rtt": 0.967}, {"annotation": null, "asn": 1739, "ip": "131.232.1.20", "name": "http://surf-gw-vlan557.av.tut.fi", "rtt": 0.961}, {"annotation": null, "asn": 1739, "ip": "131.232.1.20", "name": "http://surf-gw-vlan557.av.tut.fi", "rtt": 1.085}]}, {"hop": 4, "probes": [{"annotation": null, "asn": 1739, "ip": "130.230.1.237", "name": "http://funet-tut6-rtr-xe-0-0-0.cc.tut.fi", "rtt": 1.096}, {"annotation": null, "asn": 1739, "ip": "130.230.1.237", "name": "http://funet-tut6-rtr-xe-0-0-0.cc.tut.fi", "rtt": 1.086}, {"annotation": null, "asn": 1739, "ip": "130.230.1.237", "name": "http://funet-tut6-rtr-xe-0-0-0.cc.tut.fi", "rtt": 1.049}]}, {"hop": 5, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.220", "name": "http://hameenlinna2-et-0-0-0-1.ip.funet.fi", "rtt": 3.81}, {"annotation": null, "asn": 1741, "ip": "86.50.255.220", "name": "http://hameenlinna2-et-0-0-0-1.ip.funet.fi", "rtt": 3.845}, {"annotation": null, "asn": 1741, "ip": "86.50.255.220", "name": "http://hameenlinna2-et-0-0-0-1.ip.funet.fi", "rtt": 3.82}]}, {"hop": 6, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.224", "name": "http://hameenlinna1-et-0-0-1-1.ip.funet.fi", "rtt": 29.055}, {"annotation": null, "asn": 1741, "ip": "86.50.255.224", "name": "http://hameenlinna1-et-0-0-1-1.ip.funet.fi", "rtt": 29.013}, {"annotation": null, "asn": 1741, "ip": "86.50.255.224", "name": "http://hameenlinna1-et-0-0-1-1.ip.funet.fi", "rtt": 28.977}]}, {"hop": 7, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.223", "name": "http://espoo2-et-0-1-2-1.ip.funet.fi", "rtt": 3.468}, {"annotation": null, "asn": 1741, "ip": "86.50.255.223", "name": "http://espoo2-et-0-1-2-1.ip.funet.fi", "rtt": 8.007}, {"annotation": null, "asn": 1741, "ip": "86.50.255.223", "name": "http://espoo2-et-0-1-2-1.ip.funet.fi", "rtt": 7.89}]}, {"hop": 8, "probes": [{"annotation": null, "asn": 1741, "ip": "86.50.255.232", "name": "http://espoo1-et-0-1-7-1.ip.funet.fi", "rtt": 13.498}, {"annotation": null, "asn": 1741, "ip": "86.50.255.232", "name": "http://espoo1-et-0-1-7-1.ip.funet.fi", "rtt": 13.307}, {"annotation": null, "asn": 1741, "ip": "86.50.255.232", "name": "http://espoo1-et-0-1-7-1.ip.funet.fi", "rtt": 13.399}]}, {"hop": 9, "probes": [{"annotation": null, "asn": 2603, "ip": "109.105.102.168", "name": "http://fi-csc2.nordu.net", "rtt": 3.25}, {"annotation": null, "asn": 2603, "ip": "109.105.102.168", "name": "http://fi-csc2.nordu.net", "rtt": 3.268}, {"annotation": null, "asn": 2603, "ip": "109.105.102.168", "name": "http://fi-csc2.nordu.net", "rtt": 3.236}]}, {"hop": 10, "probes": [{"annotation": null, "asn": 2603, "ip": "109.105.97.93", "name": "http://se-fre.nordu.net", "rtt": 9.418}, {"annotation": null, "asn": 2603, "ip": "109.105.97.93", "name": "http://se-fre.nordu.net", "rtt": 9.41}, {"annotation": null, "asn": 2603, "ip": "109.105.97.93", "name": "http://se-fre.nordu.net", "rtt": 9.369}]}, {"hop": 11, "probes": [{"annotation": null, "asn": 2603, "ip": "109.105.97.27", "name": "http://se-kst2.nordu.net", "rtt": 9.617}, {"annotation": null, "asn": 2603, "ip": "109.105.97.27", "name": "http://se-kst2.nordu.net", "rtt": 9.594}, {"annotation": null, "asn": 2603, "ip": "109.105.97.27", "name": "http://se-kst2.nordu.net", "rtt": 9.603}]}, {"hop": 12, "probes": [{"annotation": null, "asn": 15169, "ip": "192.121.80.47", "name": "http://as15169-10g-sk1.sthix.net", "rtt": 10.01}, {"annotation": null, "asn": 15169, "ip": "192.121.80.47", "name": "http://as15169-10g-sk1.sthix.net", "rtt": 9.182}, {"annotation": null, "asn": 15169, "ip": "192.121.80.47", "name": "http://as15169-10g-sk1.sthix.net", "rtt": 44.983}]}, {"hop": 13, "probes": [{"annotation": null, "asn": 15169, "ip": "108.170.254.49", "name": "108.170.254.49", "rtt": 10.852}, {"annotation": null, "asn": 15169, "ip": "108.170.254.49", "name": "108.170.254.49", "rtt": 11.185}, {"annotation": null, "asn": 15169, "ip": "108.170.254.49", "name": "108.170.254.49", "rtt": 10.876}]}, {"hop": 14, "probes": [{"annotation": null, "asn": 15169, "ip": "209.85.242.11", "name": "209.85.242.11", "rtt": 10.192}, {"annotation": null, "asn": 15169, "ip": "209.85.242.11", "name": "209.85.242.11", "rtt": 10.471}, {"annotation": null, "asn": 15169, "ip": "209.85.242.11", "name": "209.85.242.11", "rtt": 10.502}]}, {"hop": 15, "probes": [{"annotation": null, "asn": 15169, "ip": "172.217.21.163", "name": "http://arn11s03-in-f3.1e100.net", "rtt": 9.652}, {"annotation": null, "asn": 15169, "ip": "172.217.21.163", "name": "http://arn11s03-in-f3.1e100.net", "rtt": 9.664}, {"annotation": null, "asn": 15169, "ip": "172.217.21.163", "name": "http://arn11s03-in-f3.1e100.net", "rtt": 9.777}]}]} diff --git a/tests/fixtures/generic/traceroute2.json b/tests/fixtures/generic/traceroute2.json index acd85297..f32ef928 100644 --- a/tests/fixtures/generic/traceroute2.json +++ b/tests/fixtures/generic/traceroute2.json @@ -1 +1 @@ -{"destination_ip": "216.58.194.46", "destination_name": "google.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "216.230.231.141", "name": "216-230-231-141.static.houston.tx.oplink.net", "rtt": 198.574}, {"annotation": null, "asn": null, "ip": "216.230.231.141", "name": "216-230-231-141.static.houston.tx.oplink.net", "rtt": null}, {"annotation": null, "asn": null, "ip": "216.230.231.141", "name": "216-230-231-141.static.houston.tx.oplink.net", "rtt": 198.65}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "72.14.242.34", "name": "72.14.242.34", "rtt": 4.932}, {"annotation": null, "asn": null, "ip": "72.14.242.34", "name": "72.14.242.34", "rtt": 4.945}, {"annotation": null, "asn": null, "ip": "72.14.242.34", "name": "72.14.242.34", "rtt": 4.951}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "108.170.230.116", "name": "108.170.230.116", "rtt": 4.687}, {"annotation": null, "asn": null, "ip": "108.170.230.116", "name": "108.170.230.116", "rtt": 4.798}, {"annotation": null, "asn": null, "ip": "108.170.230.116", "name": "108.170.230.116", "rtt": 4.688}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "108.170.252.130", "name": "108.170.252.130", "rtt": 4.825}, {"annotation": null, "asn": null, "ip": "108.170.252.130", "name": "108.170.252.130", "rtt": 4.844}, {"annotation": null, "asn": null, "ip": "108.170.252.130", "name": "108.170.252.130", "rtt": 4.797}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "108.170.233.117", "name": "108.170.233.117", "rtt": 5.386}, {"annotation": null, "asn": null, "ip": "108.170.233.117", "name": "108.170.233.117", "rtt": 5.288}, {"annotation": null, "asn": null, "ip": "108.170.233.117", "name": "108.170.233.117", "rtt": 5.324}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "216.239.63.250", "name": "216.239.63.250", "rtt": 5.305}, {"annotation": null, "asn": null, "ip": "216.239.63.250", "name": "216.239.63.250", "rtt": 5.369}, {"annotation": null, "asn": null, "ip": "216.239.63.250", "name": "216.239.63.250", "rtt": 5.406}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": "108.170.240.129", "name": "108.170.240.129", "rtt": 6.005}, {"annotation": null, "asn": null, "ip": "108.170.240.129", "name": "108.170.240.129", "rtt": 5.93}, {"annotation": null, "asn": null, "ip": "108.170.240.129", "name": "108.170.240.129", "rtt": 5.983}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": "209.85.242.53", "name": "209.85.242.53", "rtt": 4.973}, {"annotation": null, "asn": null, "ip": "209.85.242.53", "name": "209.85.242.53", "rtt": 4.973}, {"annotation": null, "asn": null, "ip": "209.85.242.53", "name": "209.85.242.53", "rtt": 4.979}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": "216.58.194.46", "name": "dfw25s12-in-f46.1e100.net", "rtt": 4.871}, {"annotation": null, "asn": null, "ip": "216.58.194.46", "name": "dfw25s12-in-f46.1e100.net", "rtt": 4.884}, {"annotation": null, "asn": null, "ip": "216.58.194.46", "name": "dfw25s12-in-f46.1e100.net", "rtt": 4.863}]}]} +{"destination_ip": "216.58.194.46", "destination_name": "google.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "216.230.231.141", "name": "216-230-231-141.static.houston.tx.oplink.net", "rtt": 198.574}, {"annotation": null, "asn": null, "ip": "216.230.231.141", "name": "216-230-231-141.static.houston.tx.oplink.net", "rtt": 198.65}]}, {"hop": 2, "probes": []}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "72.14.242.34", "name": "72.14.242.34", "rtt": 4.932}, {"annotation": null, "asn": null, "ip": "72.14.242.34", "name": "72.14.242.34", "rtt": 4.945}, {"annotation": null, "asn": null, "ip": "72.14.242.34", "name": "72.14.242.34", "rtt": 4.951}]}, {"hop": 5, "probes": []}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "108.170.230.116", "name": "108.170.230.116", "rtt": 4.687}, {"annotation": null, "asn": null, "ip": "108.170.230.116", "name": "108.170.230.116", "rtt": 4.798}, {"annotation": null, "asn": null, "ip": "108.170.230.116", "name": "108.170.230.116", "rtt": 4.688}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "108.170.252.130", "name": "108.170.252.130", "rtt": 4.825}, {"annotation": null, "asn": null, "ip": "108.170.252.130", "name": "108.170.252.130", "rtt": 4.844}, {"annotation": null, "asn": null, "ip": "108.170.252.130", "name": "108.170.252.130", "rtt": 4.797}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "108.170.233.117", "name": "108.170.233.117", "rtt": 5.386}, {"annotation": null, "asn": null, "ip": "108.170.233.117", "name": "108.170.233.117", "rtt": 5.288}, {"annotation": null, "asn": null, "ip": "108.170.233.117", "name": "108.170.233.117", "rtt": 5.324}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "216.239.63.250", "name": "216.239.63.250", "rtt": 5.305}, {"annotation": null, "asn": null, "ip": "216.239.63.250", "name": "216.239.63.250", "rtt": 5.369}, {"annotation": null, "asn": null, "ip": "216.239.63.250", "name": "216.239.63.250", "rtt": 5.406}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": "108.170.240.129", "name": "108.170.240.129", "rtt": 6.005}, {"annotation": null, "asn": null, "ip": "108.170.240.129", "name": "108.170.240.129", "rtt": 5.93}, {"annotation": null, "asn": null, "ip": "108.170.240.129", "name": "108.170.240.129", "rtt": 5.983}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": "209.85.242.53", "name": "209.85.242.53", "rtt": 4.973}, {"annotation": null, "asn": null, "ip": "209.85.242.53", "name": "209.85.242.53", "rtt": 4.973}, {"annotation": null, "asn": null, "ip": "209.85.242.53", "name": "209.85.242.53", "rtt": 4.979}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": "216.58.194.46", "name": "dfw25s12-in-f46.1e100.net", "rtt": 4.871}, {"annotation": null, "asn": null, "ip": "216.58.194.46", "name": "dfw25s12-in-f46.1e100.net", "rtt": 4.884}, {"annotation": null, "asn": null, "ip": "216.58.194.46", "name": "dfw25s12-in-f46.1e100.net", "rtt": 4.863}]}]} diff --git a/tests/fixtures/generic/traceroute3.json b/tests/fixtures/generic/traceroute3.json index a7f26646..ea8e9f48 100644 --- a/tests/fixtures/generic/traceroute3.json +++ b/tests/fixtures/generic/traceroute3.json @@ -1 +1 @@ -{"destination_ip": "31.13.82.36", "destination_name": "facebook.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "175.41.192.133", "name": "ec2-175-41-192-133.ap-northeast-1.compute.amazonaws.com", "rtt": 1.002}, {"annotation": null, "asn": null, "ip": "175.41.192.133", "name": "ec2-175-41-192-133.ap-northeast-1.compute.amazonaws.com", "rtt": null}, {"annotation": null, "asn": null, "ip": "175.41.192.133", "name": "ec2-175-41-192-133.ap-northeast-1.compute.amazonaws.com", "rtt": 1.006}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "100.65.10.33", "name": "100.65.10.33", "rtt": 0.269}, {"annotation": null, "asn": null, "ip": "100.65.10.33", "name": "100.65.10.33", "rtt": 0.282}, {"annotation": null, "asn": null, "ip": "100.65.10.33", "name": "100.65.10.33", "rtt": 0.32}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "54.239.52.186", "name": "54.239.52.186", "rtt": 1.411}, {"annotation": null, "asn": null, "ip": "54.239.52.186", "name": "54.239.52.186", "rtt": 1.431}, {"annotation": null, "asn": null, "ip": "54.239.52.186", "name": "54.239.52.186", "rtt": 1.433}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "52.95.31.89", "name": "52.95.31.89", "rtt": 2.612}, {"annotation": null, "asn": null, "ip": "52.95.31.89", "name": "52.95.31.89", "rtt": 2.634}, {"annotation": null, "asn": null, "ip": "52.95.31.89", "name": "52.95.31.89", "rtt": 2.659}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": "52.95.31.56", "name": "52.95.31.56", "rtt": 1.017}, {"annotation": null, "asn": null, "ip": "52.95.31.56", "name": "52.95.31.56", "rtt": 1.028}, {"annotation": null, "asn": null, "ip": "52.95.31.56", "name": "52.95.31.56", "rtt": 1.048}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": "52.95.31.149", "name": "52.95.31.149", "rtt": 7.042}, {"annotation": null, "asn": null, "ip": "52.95.31.149", "name": "52.95.31.149", "rtt": 7.057}, {"annotation": null, "asn": null, "ip": "52.95.31.149", "name": "52.95.31.149", "rtt": 7.06}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": "54.239.53.66", "name": "54.239.53.66", "rtt": 7.828}, {"annotation": null, "asn": null, "ip": "54.239.53.66", "name": "54.239.53.66", "rtt": 7.81}, {"annotation": null, "asn": null, "ip": "54.239.53.66", "name": "54.239.53.66", "rtt": 7.997}]}, {"hop": 13, "probes": [{"annotation": null, "asn": null, "ip": "54.239.53.82", "name": "54.239.53.82", "rtt": 7.12}, {"annotation": null, "asn": null, "ip": "54.239.53.82", "name": "54.239.53.82", "rtt": 7.126}, {"annotation": null, "asn": null, "ip": "54.239.53.82", "name": "54.239.53.82", "rtt": 7.178}]}, {"hop": 14, "probes": [{"annotation": null, "asn": null, "ip": "63.222.51.9", "name": "63-222-51-9.static.pccwglobal.net", "rtt": 7.657}, {"annotation": null, "asn": null, "ip": "63.222.51.9", "name": "63-222-51-9.static.pccwglobal.net", "rtt": 7.611}, {"annotation": null, "asn": null, "ip": "63.222.51.9", "name": "63-222-51-9.static.pccwglobal.net", "rtt": 7.669}]}, {"hop": 15, "probes": [{"annotation": null, "asn": null, "ip": "63.218.250.169", "name": "HundredGE0-4-0-3.br02.tok02.pccwbtn.net", "rtt": 8.13}, {"annotation": null, "asn": null, "ip": "63.218.250.169", "name": "HundredGE0-4-0-3.br02.tok02.pccwbtn.net", "rtt": 8.368}, {"annotation": null, "asn": null, "ip": "63.218.250.169", "name": "HundredGE0-4-0-3.br02.tok02.pccwbtn.net", "rtt": 8.402}]}, {"hop": 16, "probes": [{"annotation": null, "asn": null, "ip": "63.218.251.118", "name": "63-218-251-118.static.pccwglobal.net", "rtt": 30.511}, {"annotation": null, "asn": null, "ip": "63.218.251.118", "name": "63-218-251-118.static.pccwglobal.net", "rtt": 20.379}, {"annotation": null, "asn": null, "ip": "63.218.251.118", "name": "63-218-251-118.static.pccwglobal.net", "rtt": 20.352}]}, {"hop": 17, "probes": [{"annotation": null, "asn": null, "ip": "157.240.40.9", "name": "po104.psw04.nrt1.tfbnw.net", "rtt": 8.341}, {"annotation": null, "asn": null, "ip": "157.240.40.9", "name": "po104.psw04.nrt1.tfbnw.net", "rtt": 8.303}, {"annotation": null, "asn": null, "ip": "157.240.40.9", "name": "po104.psw04.nrt1.tfbnw.net", "rtt": 8.312}]}, {"hop": 18, "probes": [{"annotation": null, "asn": null, "ip": "173.252.67.191", "name": "173.252.67.191", "rtt": 8.298}, {"annotation": null, "asn": null, "ip": "173.252.67.191", "name": "173.252.67.191", "rtt": 8.328}, {"annotation": null, "asn": null, "ip": "173.252.67.191", "name": "173.252.67.191", "rtt": 8.359}]}, {"hop": 19, "probes": [{"annotation": null, "asn": null, "ip": "31.13.82.36", "name": "edge-star-mini-shv-01-nrt1.facebook.com", "rtt": 8.214}, {"annotation": null, "asn": null, "ip": "31.13.82.36", "name": "edge-star-mini-shv-01-nrt1.facebook.com", "rtt": 8.198}, {"annotation": null, "asn": null, "ip": "31.13.82.36", "name": "edge-star-mini-shv-01-nrt1.facebook.com", "rtt": 8.192}]}]} +{"destination_ip": "31.13.82.36", "destination_name": "facebook.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "175.41.192.133", "name": "ec2-175-41-192-133.ap-northeast-1.compute.amazonaws.com", "rtt": 1.002}, {"annotation": null, "asn": null, "ip": "175.41.192.133", "name": "ec2-175-41-192-133.ap-northeast-1.compute.amazonaws.com", "rtt": 1.006}]}, {"hop": 2, "probes": []}, {"hop": 3, "probes": []}, {"hop": 4, "probes": []}, {"hop": 5, "probes": []}, {"hop": 6, "probes": []}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "100.65.10.33", "name": "100.65.10.33", "rtt": 0.269}, {"annotation": null, "asn": null, "ip": "100.65.10.33", "name": "100.65.10.33", "rtt": 0.282}, {"annotation": null, "asn": null, "ip": "100.65.10.33", "name": "100.65.10.33", "rtt": 0.32}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "54.239.52.186", "name": "54.239.52.186", "rtt": 1.411}, {"annotation": null, "asn": null, "ip": "54.239.52.186", "name": "54.239.52.186", "rtt": 1.431}, {"annotation": null, "asn": null, "ip": "54.239.52.186", "name": "54.239.52.186", "rtt": 1.433}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "52.95.31.89", "name": "52.95.31.89", "rtt": 2.612}, {"annotation": null, "asn": null, "ip": "52.95.31.89", "name": "52.95.31.89", "rtt": 2.634}, {"annotation": null, "asn": null, "ip": "52.95.31.89", "name": "52.95.31.89", "rtt": 2.659}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": "52.95.31.56", "name": "52.95.31.56", "rtt": 1.017}, {"annotation": null, "asn": null, "ip": "52.95.31.56", "name": "52.95.31.56", "rtt": 1.028}, {"annotation": null, "asn": null, "ip": "52.95.31.56", "name": "52.95.31.56", "rtt": 1.048}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": "52.95.31.149", "name": "52.95.31.149", "rtt": 7.042}, {"annotation": null, "asn": null, "ip": "52.95.31.149", "name": "52.95.31.149", "rtt": 7.057}, {"annotation": null, "asn": null, "ip": "52.95.31.149", "name": "52.95.31.149", "rtt": 7.06}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": "54.239.53.66", "name": "54.239.53.66", "rtt": 7.828}, {"annotation": null, "asn": null, "ip": "54.239.53.66", "name": "54.239.53.66", "rtt": 7.81}, {"annotation": null, "asn": null, "ip": "54.239.53.66", "name": "54.239.53.66", "rtt": 7.997}]}, {"hop": 13, "probes": [{"annotation": null, "asn": null, "ip": "54.239.53.82", "name": "54.239.53.82", "rtt": 7.12}, {"annotation": null, "asn": null, "ip": "54.239.53.82", "name": "54.239.53.82", "rtt": 7.126}, {"annotation": null, "asn": null, "ip": "54.239.53.82", "name": "54.239.53.82", "rtt": 7.178}]}, {"hop": 14, "probes": [{"annotation": null, "asn": null, "ip": "63.222.51.9", "name": "63-222-51-9.static.pccwglobal.net", "rtt": 7.657}, {"annotation": null, "asn": null, "ip": "63.222.51.9", "name": "63-222-51-9.static.pccwglobal.net", "rtt": 7.611}, {"annotation": null, "asn": null, "ip": "63.222.51.9", "name": "63-222-51-9.static.pccwglobal.net", "rtt": 7.669}]}, {"hop": 15, "probes": [{"annotation": null, "asn": null, "ip": "63.218.250.169", "name": "HundredGE0-4-0-3.br02.tok02.pccwbtn.net", "rtt": 8.13}, {"annotation": null, "asn": null, "ip": "63.218.250.169", "name": "HundredGE0-4-0-3.br02.tok02.pccwbtn.net", "rtt": 8.368}, {"annotation": null, "asn": null, "ip": "63.218.250.169", "name": "HundredGE0-4-0-3.br02.tok02.pccwbtn.net", "rtt": 8.402}]}, {"hop": 16, "probes": [{"annotation": null, "asn": null, "ip": "63.218.251.118", "name": "63-218-251-118.static.pccwglobal.net", "rtt": 30.511}, {"annotation": null, "asn": null, "ip": "63.218.251.118", "name": "63-218-251-118.static.pccwglobal.net", "rtt": 20.379}, {"annotation": null, "asn": null, "ip": "63.218.251.118", "name": "63-218-251-118.static.pccwglobal.net", "rtt": 20.352}]}, {"hop": 17, "probes": [{"annotation": null, "asn": null, "ip": "157.240.40.9", "name": "po104.psw04.nrt1.tfbnw.net", "rtt": 8.341}, {"annotation": null, "asn": null, "ip": "157.240.40.9", "name": "po104.psw04.nrt1.tfbnw.net", "rtt": 8.303}, {"annotation": null, "asn": null, "ip": "157.240.40.9", "name": "po104.psw04.nrt1.tfbnw.net", "rtt": 8.312}]}, {"hop": 18, "probes": [{"annotation": null, "asn": null, "ip": "173.252.67.191", "name": "173.252.67.191", "rtt": 8.298}, {"annotation": null, "asn": null, "ip": "173.252.67.191", "name": "173.252.67.191", "rtt": 8.328}, {"annotation": null, "asn": null, "ip": "173.252.67.191", "name": "173.252.67.191", "rtt": 8.359}]}, {"hop": 19, "probes": [{"annotation": null, "asn": null, "ip": "31.13.82.36", "name": "edge-star-mini-shv-01-nrt1.facebook.com", "rtt": 8.214}, {"annotation": null, "asn": null, "ip": "31.13.82.36", "name": "edge-star-mini-shv-01-nrt1.facebook.com", "rtt": 8.198}, {"annotation": null, "asn": null, "ip": "31.13.82.36", "name": "edge-star-mini-shv-01-nrt1.facebook.com", "rtt": 8.192}]}]} diff --git a/tests/fixtures/generic/traceroute5.json b/tests/fixtures/generic/traceroute5.json index d5d9b79c..302f883d 100644 --- a/tests/fixtures/generic/traceroute5.json +++ b/tests/fixtures/generic/traceroute5.json @@ -1 +1 @@ -{"destination_ip": "104.18.42.178", "destination_name": "10xhostings.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": 0.894}, {"annotation": null, "asn": null, "ip": null, "name": null, "rtt": 0.89}, {"annotation": null, "asn": null, "ip": null, "name": null, "rtt": 0.876}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": "204.141.42.25", "name": "204.141.42.25", "rtt": 2.818}, {"annotation": null, "asn": null, "ip": "204.141.42.25", "name": "204.141.42.25", "rtt": 2.825}, {"annotation": null, "asn": null, "ip": "204.141.42.25", "name": "204.141.42.25", "rtt": 2.825}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "204.141.42.9", "name": "204.141.42.9", "rtt": 1.014}, {"annotation": null, "asn": null, "ip": "204.141.42.9", "name": "204.141.42.9", "rtt": 1.017}, {"annotation": null, "asn": null, "ip": "204.141.42.9", "name": "204.141.42.9", "rtt": 1.082}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "128.241.1.145", "name": "xe-0-0-46-2.a00.sttlwa01.us.bb.gin.ntt.net", "rtt": 30.105}, {"annotation": null, "asn": null, "ip": "128.241.1.145", "name": "xe-0-0-46-2.a00.sttlwa01.us.bb.gin.ntt.net", "rtt": 30.125}, {"annotation": null, "asn": null, "ip": "128.241.1.145", "name": "xe-0-0-46-2.a00.sttlwa01.us.bb.gin.ntt.net", "rtt": 30.125}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "129.250.5.117", "name": "ae-9.r04.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.346}, {"annotation": null, "asn": null, "ip": "129.250.5.117", "name": "ae-9.r04.sttlwa01.us.bb.gin.ntt.net", "rtt": 31.946}, {"annotation": null, "asn": null, "ip": "129.250.5.117", "name": "ae-9.r04.sttlwa01.us.bb.gin.ntt.net", "rtt": 31.96}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "129.250.5.86", "name": "ae-0.a01.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.836}, {"annotation": null, "asn": null, "ip": "129.250.5.86", "name": "ae-0.a01.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.749}, {"annotation": null, "asn": null, "ip": "129.250.5.86", "name": "ae-0.a01.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.743}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "131.103.117.86", "name": "ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net", "rtt": 44.601}, {"annotation": null, "asn": null, "ip": "131.103.117.86", "name": "ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net", "rtt": 42.886}, {"annotation": null, "asn": null, "ip": "131.103.117.86", "name": "ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net", "rtt": 42.874}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "104.18.42.178", "name": "104.18.42.178", "rtt": 29.614}, {"annotation": null, "asn": null, "ip": "104.18.42.178", "name": "104.18.42.178", "rtt": 29.69}, {"annotation": null, "asn": null, "ip": "104.18.42.178", "name": "104.18.42.178", "rtt": 30.461}]}]} +{"destination_ip": "104.18.42.178", "destination_name": "10xhostings.com", "hops": [{"hop": 1, "probes": []}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": 0.894}, {"annotation": null, "asn": null, "ip": null, "name": null, "rtt": 0.89}, {"annotation": null, "asn": null, "ip": null, "name": null, "rtt": 0.876}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": "204.141.42.25", "name": "204.141.42.25", "rtt": 2.818}, {"annotation": null, "asn": null, "ip": "204.141.42.25", "name": "204.141.42.25", "rtt": 2.825}, {"annotation": null, "asn": null, "ip": "204.141.42.25", "name": "204.141.42.25", "rtt": 2.825}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "204.141.42.9", "name": "204.141.42.9", "rtt": 1.014}, {"annotation": null, "asn": null, "ip": "204.141.42.9", "name": "204.141.42.9", "rtt": 1.017}, {"annotation": null, "asn": null, "ip": "204.141.42.9", "name": "204.141.42.9", "rtt": 1.082}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "128.241.1.145", "name": "xe-0-0-46-2.a00.sttlwa01.us.bb.gin.ntt.net", "rtt": 30.105}, {"annotation": null, "asn": null, "ip": "128.241.1.145", "name": "xe-0-0-46-2.a00.sttlwa01.us.bb.gin.ntt.net", "rtt": 30.125}, {"annotation": null, "asn": null, "ip": "128.241.1.145", "name": "xe-0-0-46-2.a00.sttlwa01.us.bb.gin.ntt.net", "rtt": 30.125}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "129.250.5.117", "name": "ae-9.r04.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.346}, {"annotation": null, "asn": null, "ip": "129.250.5.117", "name": "ae-9.r04.sttlwa01.us.bb.gin.ntt.net", "rtt": 31.946}, {"annotation": null, "asn": null, "ip": "129.250.5.117", "name": "ae-9.r04.sttlwa01.us.bb.gin.ntt.net", "rtt": 31.96}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "129.250.5.86", "name": "ae-0.a01.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.836}, {"annotation": null, "asn": null, "ip": "129.250.5.86", "name": "ae-0.a01.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.749}, {"annotation": null, "asn": null, "ip": "129.250.5.86", "name": "ae-0.a01.sttlwa01.us.bb.gin.ntt.net", "rtt": 32.743}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "131.103.117.86", "name": "ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net", "rtt": 44.601}, {"annotation": null, "asn": null, "ip": "131.103.117.86", "name": "ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net", "rtt": 42.886}, {"annotation": null, "asn": null, "ip": "131.103.117.86", "name": "ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net", "rtt": 42.874}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "104.18.42.178", "name": "104.18.42.178", "rtt": 29.614}, {"annotation": null, "asn": null, "ip": "104.18.42.178", "name": "104.18.42.178", "rtt": 29.69}, {"annotation": null, "asn": null, "ip": "104.18.42.178", "name": "104.18.42.178", "rtt": 30.461}]}]} diff --git a/tests/fixtures/generic/traceroute6.json b/tests/fixtures/generic/traceroute6.json index acaf6e6b..c163564a 100644 --- a/tests/fixtures/generic/traceroute6.json +++ b/tests/fixtures/generic/traceroute6.json @@ -1 +1 @@ -{"destination_ip": "52.22.122.82", "destination_name": "alexa.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "130.185.80.253", "name": "130.185.80.253", "rtt": 0.374}, {"annotation": null, "asn": null, "ip": "130.185.80.253", "name": "130.185.80.253", "rtt": null}, {"annotation": null, "asn": null, "ip": "130.185.80.253", "name": "130.185.80.253", "rtt": 0.474}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "94.46.128.26", "name": "94.46.128.26", "rtt": 0.44}, {"annotation": null, "asn": null, "ip": "94.46.128.26", "name": "94.46.128.26", "rtt": 0.457}, {"annotation": null, "asn": null, "ip": "94.46.128.26", "name": "94.46.128.26", "rtt": 0.459}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": "80.231.158.49", "name": "ix-xe-1-3-0-0.tcore1.pv9-lisbon.as6453.net", "rtt": 0.436}, {"annotation": null, "asn": null, "ip": "80.231.158.49", "name": "ix-xe-1-3-0-0.tcore1.pv9-lisbon.as6453.net", "rtt": 0.436}, {"annotation": null, "asn": null, "ip": "80.231.158.49", "name": "ix-xe-1-3-0-0.tcore1.pv9-lisbon.as6453.net", "rtt": 0.446}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "80.231.158.30", "name": "if-ae-1-3.tcore1.sv8-highbridge.as6453.net", "rtt": 100.3}, {"annotation": null, "asn": null, "ip": "80.231.158.30", "name": "if-ae-1-3.tcore1.sv8-highbridge.as6453.net", "rtt": 100.346}, {"annotation": null, "asn": null, "ip": "80.231.158.30", "name": "if-ae-1-3.tcore1.sv8-highbridge.as6453.net", "rtt": 100.362}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "80.231.139.1", "name": "if-ae-2-2.tcore2.sv8-highbridge.as6453.net", "rtt": 100.737}, {"annotation": null, "asn": null, "ip": "80.231.139.1", "name": "if-ae-2-2.tcore2.sv8-highbridge.as6453.net", "rtt": 100.787}, {"annotation": null, "asn": null, "ip": "80.231.139.1", "name": "if-ae-2-2.tcore2.sv8-highbridge.as6453.net", "rtt": 100.863}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "80.231.139.42", "name": "if-ae-11-2.tcore1.l78-london.as6453.net", "rtt": 94.576}, {"annotation": null, "asn": null, "ip": "80.231.139.42", "name": "if-ae-11-2.tcore1.l78-london.as6453.net", "rtt": 94.647}, {"annotation": null, "asn": null, "ip": "80.231.139.42", "name": "if-ae-11-2.tcore1.l78-london.as6453.net", "rtt": 94.631}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "80.231.130.106", "name": "if-ae-66-2.tcore2.nto-new-york.as6453.net", "rtt": 104.775}, {"annotation": null, "asn": null, "ip": "80.231.130.106", "name": "if-ae-66-2.tcore2.nto-new-york.as6453.net", "rtt": 105.059}, {"annotation": null, "asn": null, "ip": "80.231.130.106", "name": "if-ae-66-2.tcore2.nto-new-york.as6453.net", "rtt": 105.146}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "66.110.96.5", "name": "if-ae-12-2.tcore1.n75-new-york.as6453.net", "rtt": 100.043}, {"annotation": null, "asn": null, "ip": "66.110.96.5", "name": "if-ae-12-2.tcore1.n75-new-york.as6453.net", "rtt": 100.096}, {"annotation": null, "asn": null, "ip": "66.110.96.5", "name": "if-ae-12-2.tcore1.n75-new-york.as6453.net", "rtt": 100.089}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "66.110.96.157", "name": "66.110.96.157", "rtt": 101.514}, {"annotation": null, "asn": null, "ip": "66.110.96.157", "name": "66.110.96.157", "rtt": 101.055}, {"annotation": null, "asn": null, "ip": "66.110.96.157", "name": "66.110.96.157", "rtt": 101.058}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": "52.93.31.33", "name": "52.93.31.33", "rtt": 100.489}, {"annotation": null, "asn": null, "ip": "52.93.31.33", "name": "52.93.31.33", "rtt": 100.113}, {"annotation": null, "asn": null, "ip": "52.93.31.33", "name": "52.93.31.33", "rtt": 100.065}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": "52.93.4.0", "name": "52.93.4.0", "rtt": 93.575}, {"annotation": null, "asn": null, "ip": "52.93.4.0", "name": "52.93.4.0", "rtt": 93.473}, {"annotation": null, "asn": null, "ip": "52.93.4.0", "name": "52.93.4.0", "rtt": 93.491}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 13, "probes": [{"annotation": null, "asn": null, "ip": "54.240.229.143", "name": "54.240.229.143", "rtt": 94.307}, {"annotation": null, "asn": null, "ip": "54.240.229.143", "name": "54.240.229.143", "rtt": 94.732}, {"annotation": null, "asn": null, "ip": "54.240.229.143", "name": "54.240.229.143", "rtt": 94.683}]}, {"hop": 14, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 15, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 16, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 17, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 18, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 19, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 20, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 21, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 22, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 23, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 24, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 25, "probes": [{"annotation": null, "asn": null, "ip": "52.93.28.172", "name": "52.93.28.172", "rtt": 94.27}, {"annotation": null, "asn": null, "ip": "52.93.28.172", "name": "52.93.28.172", "rtt": 94.296}, {"annotation": null, "asn": null, "ip": "52.93.28.172", "name": "52.93.28.172", "rtt": 94.294}]}, {"hop": 26, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 27, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 28, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 29, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 30, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "52.22.122.82", "destination_name": "alexa.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "130.185.80.253", "name": "130.185.80.253", "rtt": 0.374}, {"annotation": null, "asn": null, "ip": "130.185.80.253", "name": "130.185.80.253", "rtt": 0.474}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "94.46.128.26", "name": "94.46.128.26", "rtt": 0.44}, {"annotation": null, "asn": null, "ip": "94.46.128.26", "name": "94.46.128.26", "rtt": 0.457}, {"annotation": null, "asn": null, "ip": "94.46.128.26", "name": "94.46.128.26", "rtt": 0.459}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": "80.231.158.49", "name": "ix-xe-1-3-0-0.tcore1.pv9-lisbon.as6453.net", "rtt": 0.436}, {"annotation": null, "asn": null, "ip": "80.231.158.49", "name": "ix-xe-1-3-0-0.tcore1.pv9-lisbon.as6453.net", "rtt": 0.436}, {"annotation": null, "asn": null, "ip": "80.231.158.49", "name": "ix-xe-1-3-0-0.tcore1.pv9-lisbon.as6453.net", "rtt": 0.446}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "80.231.158.30", "name": "if-ae-1-3.tcore1.sv8-highbridge.as6453.net", "rtt": 100.3}, {"annotation": null, "asn": null, "ip": "80.231.158.30", "name": "if-ae-1-3.tcore1.sv8-highbridge.as6453.net", "rtt": 100.346}, {"annotation": null, "asn": null, "ip": "80.231.158.30", "name": "if-ae-1-3.tcore1.sv8-highbridge.as6453.net", "rtt": 100.362}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "80.231.139.1", "name": "if-ae-2-2.tcore2.sv8-highbridge.as6453.net", "rtt": 100.737}, {"annotation": null, "asn": null, "ip": "80.231.139.1", "name": "if-ae-2-2.tcore2.sv8-highbridge.as6453.net", "rtt": 100.787}, {"annotation": null, "asn": null, "ip": "80.231.139.1", "name": "if-ae-2-2.tcore2.sv8-highbridge.as6453.net", "rtt": 100.863}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "80.231.139.42", "name": "if-ae-11-2.tcore1.l78-london.as6453.net", "rtt": 94.576}, {"annotation": null, "asn": null, "ip": "80.231.139.42", "name": "if-ae-11-2.tcore1.l78-london.as6453.net", "rtt": 94.647}, {"annotation": null, "asn": null, "ip": "80.231.139.42", "name": "if-ae-11-2.tcore1.l78-london.as6453.net", "rtt": 94.631}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "80.231.130.106", "name": "if-ae-66-2.tcore2.nto-new-york.as6453.net", "rtt": 104.775}, {"annotation": null, "asn": null, "ip": "80.231.130.106", "name": "if-ae-66-2.tcore2.nto-new-york.as6453.net", "rtt": 105.059}, {"annotation": null, "asn": null, "ip": "80.231.130.106", "name": "if-ae-66-2.tcore2.nto-new-york.as6453.net", "rtt": 105.146}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": "66.110.96.5", "name": "if-ae-12-2.tcore1.n75-new-york.as6453.net", "rtt": 100.043}, {"annotation": null, "asn": null, "ip": "66.110.96.5", "name": "if-ae-12-2.tcore1.n75-new-york.as6453.net", "rtt": 100.096}, {"annotation": null, "asn": null, "ip": "66.110.96.5", "name": "if-ae-12-2.tcore1.n75-new-york.as6453.net", "rtt": 100.089}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "66.110.96.157", "name": "66.110.96.157", "rtt": 101.514}, {"annotation": null, "asn": null, "ip": "66.110.96.157", "name": "66.110.96.157", "rtt": 101.055}, {"annotation": null, "asn": null, "ip": "66.110.96.157", "name": "66.110.96.157", "rtt": 101.058}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": "52.93.31.33", "name": "52.93.31.33", "rtt": 100.489}, {"annotation": null, "asn": null, "ip": "52.93.31.33", "name": "52.93.31.33", "rtt": 100.113}, {"annotation": null, "asn": null, "ip": "52.93.31.33", "name": "52.93.31.33", "rtt": 100.065}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": "52.93.4.0", "name": "52.93.4.0", "rtt": 93.575}, {"annotation": null, "asn": null, "ip": "52.93.4.0", "name": "52.93.4.0", "rtt": 93.473}, {"annotation": null, "asn": null, "ip": "52.93.4.0", "name": "52.93.4.0", "rtt": 93.491}]}, {"hop": 12, "probes": []}, {"hop": 13, "probes": [{"annotation": null, "asn": null, "ip": "54.240.229.143", "name": "54.240.229.143", "rtt": 94.307}, {"annotation": null, "asn": null, "ip": "54.240.229.143", "name": "54.240.229.143", "rtt": 94.732}, {"annotation": null, "asn": null, "ip": "54.240.229.143", "name": "54.240.229.143", "rtt": 94.683}]}, {"hop": 14, "probes": []}, {"hop": 15, "probes": []}, {"hop": 16, "probes": []}, {"hop": 17, "probes": []}, {"hop": 18, "probes": []}, {"hop": 19, "probes": []}, {"hop": 20, "probes": []}, {"hop": 21, "probes": []}, {"hop": 22, "probes": []}, {"hop": 23, "probes": []}, {"hop": 24, "probes": []}, {"hop": 25, "probes": [{"annotation": null, "asn": null, "ip": "52.93.28.172", "name": "52.93.28.172", "rtt": 94.27}, {"annotation": null, "asn": null, "ip": "52.93.28.172", "name": "52.93.28.172", "rtt": 94.296}, {"annotation": null, "asn": null, "ip": "52.93.28.172", "name": "52.93.28.172", "rtt": 94.294}]}, {"hop": 26, "probes": []}, {"hop": 27, "probes": []}, {"hop": 28, "probes": []}, {"hop": 29, "probes": []}, {"hop": 30, "probes": []}]} diff --git a/tests/fixtures/generic/traceroute7.json b/tests/fixtures/generic/traceroute7.json index 0bdfb92c..e0423079 100644 --- a/tests/fixtures/generic/traceroute7.json +++ b/tests/fixtures/generic/traceroute7.json @@ -1 +1 @@ -{"destination_ip": "181.40.91.83", "destination_name": "paraguay.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": 128742, "ip": "192.168.0.1", "name": "192.168.0.1", "rtt": 9.173}, {"annotation": null, "asn": 128742, "ip": "192.168.0.1", "name": "192.168.0.1", "rtt": 5.49}, {"annotation": null, "asn": 128742, "ip": "192.168.0.1", "name": "192.168.0.1", "rtt": 5.197}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 3, "probes": [{"annotation": null, "asn": 0, "ip": "192.168.117.58", "name": "192.168.117.58", "rtt": 26.768}, {"annotation": null, "asn": 0, "ip": "192.168.117.58", "name": "192.168.117.58", "rtt": 17.878}, {"annotation": null, "asn": 0, "ip": "192.168.117.58", "name": "192.168.117.58", "rtt": 16.443}]}, {"hop": 4, "probes": [{"annotation": null, "asn": 0, "ip": "192.168.15.1", "name": "192.168.15.1", "rtt": 16.229}, {"annotation": null, "asn": 0, "ip": "192.168.15.1", "name": "192.168.15.1", "rtt": 23.514}, {"annotation": null, "asn": 0, "ip": "192.168.15.1", "name": "192.168.15.1", "rtt": 16.878}]}, {"hop": 5, "probes": [{"annotation": null, "asn": 0, "ip": "91.122.105.27", "name": "91.122.105.27", "rtt": 17.825}, {"annotation": null, "asn": 0, "ip": "91.122.105.27", "name": "91.122.105.27", "rtt": 22.906}, {"annotation": null, "asn": 0, "ip": "91.122.105.27", "name": "91.122.105.27", "rtt": 29.003}]}, {"hop": 6, "probes": [{"annotation": null, "asn": 0, "ip": "94.142.122.45", "name": "94.142.122.45", "rtt": 42.79}, {"annotation": null, "asn": 0, "ip": "94.142.122.45", "name": "94.142.122.45", "rtt": 46.352}, {"annotation": null, "asn": 0, "ip": "94.142.122.44", "name": "94.142.122.44", "rtt": 41.479}]}, {"hop": 7, "probes": [{"annotation": null, "asn": 0, "ip": "94.142.124.46", "name": "94.142.124.46", "rtt": 62.692}, {"annotation": null, "asn": 0, "ip": "94.142.124.46", "name": "94.142.124.46", "rtt": 44.691}, {"annotation": null, "asn": 0, "ip": "5.53.0.153", "name": "5.53.0.153", "rtt": 61.049}]}, {"hop": 8, "probes": [{"annotation": null, "asn": 0, "ip": "181.40.42.30", "name": "pool-30-42-40-181.telecel.com.py", "rtt": 65.148}, {"annotation": null, "asn": 0, "ip": "5.53.0.155", "name": "5.53.0.155", "rtt": 65.096}, {"annotation": null, "asn": 0, "ip": "181.40.42.30", "name": "pool-30-42-40-181.telecel.com.py", "rtt": 65.157}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 10, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 11, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 12, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "181.40.91.83", "destination_name": "paraguay.com", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": 128742, "ip": "192.168.0.1", "name": "192.168.0.1", "rtt": 9.173}, {"annotation": null, "asn": 128742, "ip": "192.168.0.1", "name": "192.168.0.1", "rtt": 5.49}, {"annotation": null, "asn": 128742, "ip": "192.168.0.1", "name": "192.168.0.1", "rtt": 5.197}]}, {"hop": 2, "probes": []}, {"hop": 3, "probes": [{"annotation": null, "asn": 0, "ip": "192.168.117.58", "name": "192.168.117.58", "rtt": 26.768}, {"annotation": null, "asn": 0, "ip": "192.168.117.58", "name": "192.168.117.58", "rtt": 17.878}, {"annotation": null, "asn": 0, "ip": "192.168.117.58", "name": "192.168.117.58", "rtt": 16.443}]}, {"hop": 4, "probes": [{"annotation": null, "asn": 0, "ip": "192.168.15.1", "name": "192.168.15.1", "rtt": 16.229}, {"annotation": null, "asn": 0, "ip": "192.168.15.1", "name": "192.168.15.1", "rtt": 23.514}, {"annotation": null, "asn": 0, "ip": "192.168.15.1", "name": "192.168.15.1", "rtt": 16.878}]}, {"hop": 5, "probes": [{"annotation": null, "asn": 0, "ip": "91.122.105.27", "name": "91.122.105.27", "rtt": 17.825}, {"annotation": null, "asn": 0, "ip": "91.122.105.27", "name": "91.122.105.27", "rtt": 22.906}, {"annotation": null, "asn": 0, "ip": "91.122.105.27", "name": "91.122.105.27", "rtt": 29.003}]}, {"hop": 6, "probes": [{"annotation": null, "asn": 0, "ip": "94.142.122.45", "name": "94.142.122.45", "rtt": 42.79}, {"annotation": null, "asn": 0, "ip": "94.142.122.45", "name": "94.142.122.45", "rtt": 46.352}, {"annotation": null, "asn": 0, "ip": "94.142.122.44", "name": "94.142.122.44", "rtt": 41.479}]}, {"hop": 7, "probes": [{"annotation": null, "asn": 0, "ip": "94.142.124.46", "name": "94.142.124.46", "rtt": 62.692}, {"annotation": null, "asn": 0, "ip": "94.142.124.46", "name": "94.142.124.46", "rtt": 44.691}, {"annotation": null, "asn": 0, "ip": "5.53.0.153", "name": "5.53.0.153", "rtt": 61.049}]}, {"hop": 8, "probes": [{"annotation": null, "asn": 0, "ip": "181.40.42.30", "name": "pool-30-42-40-181.telecel.com.py", "rtt": 65.148}, {"annotation": null, "asn": 0, "ip": "5.53.0.155", "name": "5.53.0.155", "rtt": 65.096}, {"annotation": null, "asn": 0, "ip": "181.40.42.30", "name": "pool-30-42-40-181.telecel.com.py", "rtt": 65.157}]}, {"hop": 9, "probes": []}, {"hop": 10, "probes": []}, {"hop": 11, "probes": []}, {"hop": 12, "probes": []}]} diff --git a/tests/fixtures/osx-10.14.6/traceroute-asn.json b/tests/fixtures/osx-10.14.6/traceroute-asn.json index 5ae90f6e..ef634d5a 100644 --- a/tests/fixtures/osx-10.14.6/traceroute-asn.json +++ b/tests/fixtures/osx-10.14.6/traceroute-asn.json @@ -1 +1 @@ -{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": 198949, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 6.07}, {"annotation": null, "asn": 198949, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 5.721}, {"annotation": null, "asn": 198949, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 5.269}]}, {"hop": 2, "probes": [{"annotation": null, "asn": 0, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 160.025}, {"annotation": null, "asn": 0, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 178.69}, {"annotation": null, "asn": 0, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 33.759}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": 7018, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 37.783}, {"annotation": null, "asn": 7018, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 23.782}, {"annotation": null, "asn": 7018, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 24.958}]}]} +{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": 198949, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 6.07}, {"annotation": null, "asn": 198949, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 5.721}, {"annotation": null, "asn": 198949, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 5.269}]}, {"hop": 2, "probes": [{"annotation": null, "asn": 0, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 160.025}, {"annotation": null, "asn": 0, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 178.69}, {"annotation": null, "asn": 0, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 33.759}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": 7018, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 37.783}, {"annotation": null, "asn": 7018, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 23.782}, {"annotation": null, "asn": 7018, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 24.958}]}]} diff --git a/tests/fixtures/osx-10.14.6/traceroute-no-header.json b/tests/fixtures/osx-10.14.6/traceroute-no-header.json new file mode 100644 index 00000000..812aac72 --- /dev/null +++ b/tests/fixtures/osx-10.14.6/traceroute-no-header.json @@ -0,0 +1 @@ +{"destination_ip": null, "destination_name": null, "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 11.415}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 3.934}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 3.286}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 24.174}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.817}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 27.771}]}, {"hop": 3, "probes": []}]} diff --git a/tests/fixtures/osx-10.14.6/traceroute-q.json b/tests/fixtures/osx-10.14.6/traceroute-q.json index 75e23ca5..8fbcba74 100644 --- a/tests/fixtures/osx-10.14.6/traceroute-q.json +++ b/tests/fixtures/osx-10.14.6/traceroute-q.json @@ -1 +1 @@ -{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 3.317}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 6.373}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 6.967}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 5.299}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 4.605}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 28.829}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.073}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 26.238}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 22.052}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 22.519}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}, {"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 3.317}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 6.373}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 6.967}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 5.299}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 4.605}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 28.829}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.073}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 26.238}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 22.052}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 22.519}]}, {"hop": 3, "probes": []}]} diff --git a/tests/fixtures/osx-10.14.6/traceroute.json b/tests/fixtures/osx-10.14.6/traceroute.json index 19ac25c1..c21a7778 100644 --- a/tests/fixtures/osx-10.14.6/traceroute.json +++ b/tests/fixtures/osx-10.14.6/traceroute.json @@ -1 +1 @@ -{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 12.07}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 4.328}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 4.167}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.595}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 26.13}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 28.555}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 149.663}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 27.761}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 160.709}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 27.131}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 160.459}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 32.274}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 143.143}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 27.034}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 152.676}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "12.255.10.234", "name": "12.255.10.234", "rtt": 24.912}, {"annotation": null, "asn": null, "ip": "12.255.10.234", "name": "12.255.10.234", "rtt": 23.802}, {"annotation": null, "asn": null, "ip": "12.255.10.234", "name": "12.255.10.234", "rtt": 157.338}]}, {"hop": 8, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 30.84}, {"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 22.503}, {"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 23.538}]}]} +{"destination_ip": "8.8.8.8", "destination_name": "8.8.8.8", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 12.07}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 4.328}, {"annotation": null, "asn": null, "ip": "192.168.1.254", "name": "dsldevice", "rtt": 4.167}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 20.595}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 26.13}, {"annotation": null, "asn": null, "ip": "76.220.24.1", "name": "76-220-24-1.lightspeed.sntcca.sbcglobal.net", "rtt": 28.555}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 149.663}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 27.761}, {"annotation": null, "asn": null, "ip": "12.122.149.186", "name": "12.122.149.186", "rtt": 160.709}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 27.131}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 160.459}, {"annotation": null, "asn": null, "ip": "12.122.3.70", "name": "sffca22crs.ip.att.net", "rtt": 32.274}]}, {"hop": 6, "probes": [{"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 143.143}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 27.034}, {"annotation": null, "asn": null, "ip": "12.122.163.61", "name": "12.122.163.61", "rtt": 152.676}]}, {"hop": 7, "probes": [{"annotation": null, "asn": null, "ip": "12.255.10.234", "name": "12.255.10.234", "rtt": 24.912}, {"annotation": null, "asn": null, "ip": "12.255.10.234", "name": "12.255.10.234", "rtt": 23.802}, {"annotation": null, "asn": null, "ip": "12.255.10.234", "name": "12.255.10.234", "rtt": 157.338}]}, {"hop": 8, "probes": []}, {"hop": 9, "probes": [{"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 30.84}, {"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 22.503}, {"annotation": null, "asn": null, "ip": "8.8.8.8", "name": "dns.google", "rtt": 23.538}]}]} diff --git a/tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.json b/tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.json index badd27b3..d7b9bfe1 100644 --- a/tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.json +++ b/tests/fixtures/osx-10.14.6/traceroute6-mult-addresses.json @@ -1 +1 @@ -{"destination_ip": "2a04:4e42:200::323", "destination_name": "turner-tls.map.fastly.net", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 27.635}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 20.383}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 23.438}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.118}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.327}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 21.213}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "2a04:4e42:200::323", "destination_name": "turner-tls.map.fastly.net", "hops": [{"hop": 1, "probes": []}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 27.635}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 20.383}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 23.438}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.118}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.327}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 21.213}]}, {"hop": 5, "probes": []}]} diff --git a/tests/fixtures/osx-10.14.6/traceroute6.json b/tests/fixtures/osx-10.14.6/traceroute6.json index badd27b3..d7b9bfe1 100644 --- a/tests/fixtures/osx-10.14.6/traceroute6.json +++ b/tests/fixtures/osx-10.14.6/traceroute6.json @@ -1 +1 @@ -{"destination_ip": "2a04:4e42:200::323", "destination_name": "turner-tls.map.fastly.net", "hops": [{"hop": 1, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 27.635}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 20.383}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 23.438}]}, {"hop": 3, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.118}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.327}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 21.213}]}, {"hop": 5, "probes": [{"annotation": null, "asn": null, "ip": null, "name": null, "rtt": null}]}]} +{"destination_ip": "2a04:4e42:200::323", "destination_name": "turner-tls.map.fastly.net", "hops": [{"hop": 1, "probes": []}, {"hop": 2, "probes": [{"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 27.635}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 20.383}, {"annotation": null, "asn": null, "ip": "2001:506:6000:11b:71:156:212:143", "name": null, "rtt": 23.438}]}, {"hop": 3, "probes": []}, {"hop": 4, "probes": [{"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.118}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 20.327}, {"annotation": null, "asn": null, "ip": "2001:1890:ff:ff08:12:242:117:16", "name": null, "rtt": 21.213}]}, {"hop": 5, "probes": []}]} diff --git a/tests/test_traceroute.py b/tests/test_traceroute.py index 31bfdfcd..bb0872e6 100644 --- a/tests/test_traceroute.py +++ b/tests/test_traceroute.py @@ -65,6 +65,9 @@ class MyTests(unittest.TestCase): self.generic_traceroute8 = f.read() # output + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/traceroute-no-header.json'), 'r', encoding='utf-8') as f: + self.osx_10_14_6_traceroute_no_header_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/traceroute.json'), 'r', encoding='utf-8') as f: self.centos_7_7_traceroute_json = json.loads(f.read()) @@ -124,9 +127,9 @@ class MyTests(unittest.TestCase): def test_traceroute_noheader(self): """ - Test 'traceroute' with missing header row. Should generate a ParseError exception + Test 'traceroute' with missing header row """ - self.assertRaises(jc.parsers.traceroute.ParseError, jc.parsers.traceroute.parse, self.osx_10_14_6_traceroute_noheader) + self.assertEqual(jc.parsers.traceroute.parse(self.osx_10_14_6_traceroute_noheader, quiet=True), self.osx_10_14_6_traceroute_no_header_json) def test_traceroute_centos_7_7(self): """