# Measurement Result Format

RIPE Atlas measurement results can be downloaded in JSON format. This document describes the data structure of these results, which can vary by probe firmware version.

# Notes

# 1.1. Versioning

The results are returned as an array consisting of elements, each of which is an associative array. The structure of these associative arrays depends on the firmware version used by the probe conducting the measurement. Therefore, it is possible for downloaded results to contain a mix of different result structures.

The data structure of each result contains the key fw which identifies the firmware version used by the probe that generated that result.

  • Version 1 is identified by the value "1".
  • Version 4400 is identified by a value of between "4400" and "4459".
  • Version 4460 is identified by a value of between "4460" and "4539".
  • Version 4540 is identified by a value of between "4540" and "4569".
  • Version 4570 is identified by a value of between "4570" and "4609".
  • Version 4610 is identified by a value of between "4610" and "4749".
  • Version 4750 is identified by a value of between "4750" and "4999".
  • Version 5000 is currently the most recent version of the datastructure documentation. At the moment any value greather than 5000 conforms to the 5000 documentation. An upper limit to this version will added with the release of a firmware version that changes the datastructures.

Since Version 5000, measurement results contain a separate field, called "mver", that specifies the version of the measurement code. This field has the format "x.y.z", where the "x" field is that major version, which changes when the measurement results are incompatible with the previous version. The "y" field is the minor version, and changes when new fields are added, but otherwise old parsers can still parse measurement results. Finally, the "z" field specifies that the measurement code changed, but the output format is still the same. This happens when only (minor) bugs are fixed and no new features are added.

# 1.2. Multiple Addresses in a Result

The result structure may contain several different fields that appear to contain similar information, but which are in fact slightly different.

from

This field is added by the RIPE Atlas backend system and is used in ASN lookup, geo-location, and so on. There are some special cases for IPv6-capable probes in which that this can be an empty string.

src

This field is added by the probe. It comes from a TCP socket, or from UDP connect/getsockname calls.

  • If the probe is behind a NAT, src could be a private address, whereas from will always be a public address.
  • It is also possible for src and from to differ with IPv6 if there are multiple addresses from RAs and/or static configuration with a different priority.
  • With v4 addresses, it is possible for the from field to be filled in at a later time, rather than when the measurement was made. If the probe is unable to connect to the RIPE Atlas backend system, but continues performing measurements and delivers the results at a later time, the backend system will populate the from field for this entire 'disconnected' time with the value at the time of reconnection.

# 1.3. JSON Terminology

Results are returned encoded in JSON (opens new window). JSON has primitive data types such strings, numbers and booleans. And two compount data types, which are called object and array.

A JSON string is very much like a C string: the string is enclosed in double quotes (") and back slash (\) is used to introduce special characters. Likewise, a number is very much like a C floating point number. The boolean data types has two values, true and false.

The object data type is a collection of named fields. An object is a comma separated list enclosed in curly braces ("{" and "}"). Each element of the list consists of the name of the field encoded as string, a colon ("😊 and the value, which can be an arbitrary JSON data type.

The array data type is a comma separated list of values encloded in square brackets ("[" and "]"). JSON allows each value to be of a different type. However, in the data structures described here, arrays have values that are all the same type.

# Version 1

Version 1 is identified by the value "1" for the key fw in the result.

# Version 1 Ping / v6 Ping

Result:

  • "addr" -- IP address of the destination (string)
  • "avg" -- average round-trip time (float)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by controller (string)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (string)
  • "prb_id" -- source probe ID (int)
  • "rcvd" -- number of packets received (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (int)
  • "timestamp" -- Unix timestamp (int)

Example result:

{
  "addr": "178.63.78.16",
  "avg": 20.126000000000001,
  "dup": 0,
  "from": "62.194.83.50",
  "fw": 1,
  "max": 20.300000000000001,
  "min": 19.937999999999999,
  "msm_id": 1000047,
  "name": "atlas.ripe.net",
  "prb_id": 165,
  "rcvd": 3,
  "sent": 3,
  "size": 56,
  "timestamp": 1332938930
}

# Version 1 Traceroute / v6 Traceroute

Result:

  • "from" -- IP address of the probe as known by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- output of the traceroute command (string)
  • "timestamp" -- Unix timestamp (int)

Example result:

{
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc1e",
  "fw": 1,
  "msm_id": 6001,
  "prb_id": 21,
  "result": "traceroute to 2001:7fd::1 (2001:7fd::1), 32 hops max, 16 byte packets NEWLINE 1 2001:67c:2e8:13::2 1.907 ms 1.909 ms 1.945 ms NEWLINE 2 2001:7f8:1::a502:5152:1 14.162 ms 2.026 ms 1.872 ms NEWLINE 3 2001:7fd::1 1.876 ms 1.872 ms 1.878 ms NEWLINE",
  "timestamp": 1338816126
}

# Version 4400

Version 4400 is identified by a value between "4400" and "4459" for the key fw in the result.

# Version 4400 Ping / v6 Ping

Result:

  • "addr" -- IP address of the destination (string)
  • "avg" -- average round-trip time (float)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "mode" -- "ICMP4" or "ICMP6" (string)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (string)
  • "prb_id" -- source probe ID (int)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array)
    Each element is an associative array consisting of:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (int)
  • "srcaddr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (int)

Example result:

{
  "addr": "2001:7fd::1",
  "avg": 2.1720000000000002,
  "dup": 0,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4450,
  "max": 2.2869999999999999,
  "min": 2.1000000000000001,
  "mode": "ICMP6",
  "msm_id": 2001,
  "name": "2001:7fd::1",
  "prb_id": 9,
  "rcvd": 3,
  "result": [
    { "rtt": 2.2869999999999999 },
    { "rtt": 2.129 },
    { "rtt": 2.1000000000000001 }
  ],
  "sent": 3,
  "size": 0,
  "srcaddr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1338814181,
  "ttl": 62
}

# Version 4400 Traceroute / v6 Traceroute

Result:

  • "addr" -- IP address of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "mode" -- "ICMP4" or "ICMP6" or "UDP4" or "UDP6" (string)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (string)
  • "paris-id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- list of hop elements (array)
    Each element is an associative array consisting of:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array)
      Each element is an associative array consisting of:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "rtt" -- round-trip-time of reply (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "icmpext" -- [optional] information when icmp header is found in reply (object)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array)
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array)
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "srcaddr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)

Example result:

{
  "addr": "2001:470:c:c35::1:186",
  "endtime": 1338812907,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4450,
  "mode": "UDP6",
  "msm_id": 6020,
  "name": "2001:470:c:c35::1:186",
  "paris-id": 1,
  "prb_id": 9,
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.2829999999999999,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.4590000000000001,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.4209999999999998,
          "size": 96,
          "ttl": 63
        }
      ]
    },
    ...{
      "hop": 7,
      "result": [
        {
          "from": "2001:470:c:c35::1:186",
          "rtt": 140.595,
          "size": 96,
          "ttl": 57
        },
        {
          "from": "2001:470:c:c35::1:186",
          "rtt": 140.19300000000001,
          "size": 96,
          "ttl": 57
        },
        {
          "from": "2001:470:c:c35::1:186",
          "rtt": 139.82900000000001,
          "size": 96,
          "ttl": 57
        }
      ]
    }
  ],
  "size": 40,
  "srcaddr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1338812898
}

# Version 4400 DNS Lookup

Result:

  • "address" -- [optional] IP address of the destination (string)

  • "error" -- [optional] error message (associative array)

    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)

  • "msm_id" -- measurement identifier (int)

  • "name" -- [optional] hostname of the destination (string)

  • "pf" -- [optional] IP version: "4" or "6" (int)

  • "prb_id" -- source probe ID (int)

  • "proto" -- "TCP" or "UDP" (string)

  • "qbuf" -- [optional] query payload buffer which was sent to the server, UU encoded (string)
    See example code for decoding the value

  • "result" -- [optional] response from the DNS server (associative array)

    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, UU encoded (string)

    See example code for decoding the value

    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array)
      Each element is an associative array consisting of:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value, (string)
      • "RDLENGTH" -- [type TXT] length of RDATA (int). depreciated (4450)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
    • "src" -- [optional] the source IP address added by the probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver
    • "submax" -- [optional] total number of results within a group (int)
  • "timestamp" -- start time, Unix timestamp (int)

Notes:

  • If a hostname was provided, both the hostname (name) and the IP address (address) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The address field will always be present, except when there is an error.

Example result:

{
  "address": "193.0.14.129",
  "from": "",
  "fw": 4450,
  "msm_id": 10001,
  "pf": 4,
  "prb_id": 9,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 13,
    "ID": 12124,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "L1yEAAABAAEADQANAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20Ad+2a8AAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAAQABAAfpAAAExikABMB0AAEAAQAH6QAABMDkT8nAgwABAAEAB+kAAATAIQQMwJIAAQABAAfpAAAEgAgKWsChAAEAAQAH6QAABMDL5grAsAABAAEAB+kAAATABQXxwL8AAQABAAfpAAAEwHAkBMDOAAEAAQAH6QAABIA/AjXA3QABAAEAB+kAAATAJJQRwOwAAQABAAfpAAAEwDqAHsD7AAEAAQAH6QAABMEADoHBCgABAAEAB+kAAATHB1MqwRkAAQABAAfpAAAEygwbIQ==",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RDLENGTH": 64,
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2012060400,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 2.6600000000000001,
    "size": 493
  },
  "timestamp": 1338813093
}

# Version 4400 HTTP

Result:

  • "from" -- IP address of the probe as known by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array)
    Each element is an associative array consisting of:
    • "addr" -- target address (string)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array)
    • "hsize" -- header size in octets (int)
    • "mode" -- "GET4" or "GET6" or "HEAD4" or "HEAD6" or "POST4" or "POST6" (string)
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "srcaddr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "uri" -- request uri (string)

Example result:

{
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4450,
  "msm_id": 13023,
  "prb_id": 9,
  "result": [
    {
      "addr": "2001:67c:2e8:22::c100:68b",
      "bsize": 1406,
      "hsize": 263,
      "mode": "GET6",
      "res": 200,
      "rt": 10.66,
      "srcaddr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
      "ver": "1.1"
    }
  ],
  "timestamp": 1338814062,
  "uri": "http://www.ripe.net/favicon.ico"
}

# Version 4400 TLS (SSL) GET Cert

Result:

  • "addr" -- IP address of the destination (string)
  • "cert" -- results of query (array)
    Each element of the array is a string containing a base 64 encoded certificate. Newlines are replaced with "\n"
  • "from" -- IP address of the probe as known by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (string)
  • "port" -- port name (string)
  • "prb_id" -- source probe ID (int)
  • "srcaddr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)

Example result:

{
  "addr": "2a01:4f8:121:30a3::78:16",
  "cert": [
    "-----BEGIN CERTIFICATE-----\\nMIIGMTCCBRmgAwIBAgIQCfO+bTlrT/6of7r+Sw5WTzANBgkqhkiG9w0BAQUFADBm\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBDQS0zMB4XDTEwMTEwMjAwMDAwMFoXDTEyMTEwNTIzNTk1OVowZTELMAkGA1UE\\nBhMCTkwxFjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxEjAQBgNVBAcTCUFtc3RlcmRh\\nbTERMA8GA1UEChMIUklQRSBOQ0MxFzAVBgNVBAMTDmF0bGFzLnJpcGUubmV0MIGf\\nMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqhOdAts5iMvuw98IDeh1FCw+xfqu5\\nUBLXjbdfmH+3EwYhmFpduN9M8s8CnCC0YC5TsWytgzFPevDQ7QTbNPRMYFjtsBtv\\nz4OR+mlN3LoAMKXic7mJazEH5/jQG0I06+dOaXQT7JDGZbBAFV78B0B0QqRRJmoY\\n1KbvTGtzqBdoUwIDAQABo4IDXjCCA1owHwYDVR0jBBgwFoAUUOpzidsp+xCPnuUB\\nINTeeZlIg/cwHQYDVR0OBBYEFLH8APIsyl0RAI8eXaYwqaY11sfTMC0GA1UdEQQm\\nMCSCDmF0bGFzLnJpcGUubmV0ghJ3d3cuYXRsYXMucmlwZS5uZXQwewYIKwYBBQUH\\nAQEEbzBtMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wRQYI\\nKwYBBQUHMAKGOWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEhp\\nZ2hBc3N1cmFuY2VDQS0zLmNydDAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIw\\nADBlBgNVHR8EXjBcMCygKqAohiZodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vY2Ez\\nLTIwMTBoLmNybDAsoCqgKIYmaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL2NhMy0y\\nMDEwaC5jcmwwggHGBgNVHSAEggG9MIIBuTCCAbUGC2CGSAGG/WwBAwABMIIBpDA6\\nBggrBgEFBQcCARYuaHR0cDovL3d3dy5kaWdpY2VydC5jb20vc3NsLWNwcy1yZXBv\\nc2l0b3J5Lmh0bTCCAWQGCCsGAQUFBwICMIIBVh6CAVIAQQBuAHkAIAB1AHMAZQAg\\nAG8AZgAgAHQAaABpAHMAIABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAIABjAG8AbgBz\\nAHQAaQB0AHUAdABlAHMAIABhAGMAYwBlAHAAdABhAG4AYwBlACAAbwBmACAAdABo\\nAGUAIABEAGkAZwBpAEMAZQByAHQAIABDAFAALwBDAFAAUwAgAGEAbgBkACAAdABo\\nAGUAIABSAGUAbAB5AGkAbgBnACAAUABhAHIAdAB5ACAAQQBnAHIAZQBlAG0AZQBu\\nAHQAIAB3AGgAaQBjAGgAIABsAGkAbQBpAHQAIABsAGkAYQBiAGkAbABpAHQAeQAg\\nAGEAbgBkACAAYQByAGUAIABpAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgAGgAZQBy\\nAGUAaQBuACAAYgB5ACAAcgBlAGYAZQByAGUAbgBjAGUALjAdBgNVHSUEFjAUBggr\\nBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADggEBABh0uT4bltD5QdFj\\nrCSCViuOxPJ4667umtzWFgA/oUYM9D8LkXpPo4A3YPexTf3ssiDzxAhsrFxJRrjh\\nC5/j77TvRtKv1OfwXfgeeqluybYMs+LRkjNHNkEA9lsonrZ0gSAIktYneWOVQlCe\\nEV20yi0oDCPFnk6rCUNoT/dAhHgUX3Iw2p3Hy/ELst3CvMOjvCpaJVTob4t0rOxS\\niOuSC4YAqkP+O0dRoAIGedQ9eqDip6vrqGbK5i1PDo1zh0uOBhvcQ+cRWGnmKv8H\\nmUDBFFTB4e81O9wnzRrV0BRaBzkGEe6EcluRNs9VS1wZA/Y/xDggSn8+cOM52vb3\\nlQuEV20=\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIGVTCCBT2gAwIBAgIQCFH5WYFBRcq94CTiEsnCDjANBgkqhkiG9w0BAQUFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTA3MDQwMzAwMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\\nQ0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR\\nCPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv\\nKEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5\\nBUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf\\n1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs\\nzPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d\\n32duXvsCAwEAAaOCAvcwggLzMA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w\\nggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3\\nLmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH\\nAgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy\\nAHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj\\nAGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg\\nAEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ\\nAGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt\\nAGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj\\nAG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl\\nAHIAZQBuAGMAZQAuMA8GA1UdEwEB/wQFMAMBAf8wNAYIKwYBBQUHAQEEKDAmMCQG\\nCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSBhzCB\\nhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGlnaEFz\\nc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQu\\nY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSMEGDAW\\ngBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUBINTe\\neZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAF1PhPGoiNOjsrycbeUpSXfh59bcqdg1\\nrslx3OXb3J0kIZCmz7cBHJvUV5eR13UWpRLXuT0uiT05aYrWNTf58SHEW0CtWakv\\nXzoAKUMncQPkvTAyVab+hA4LmzgZLEN8rEO/dTHlIxxFVbdpCJG1z9fVsV7un5Tk\\n1nq5GMO41lJjHBC6iy9tXcwFOPRWBW3vnuzoYTYMFEuFFFoMg08iXFnLjIpx2vrF\\nEIRYzwfu45DC9fkpx1ojcflZtGQriLCnNseaIGHr+k61rmsb5OPs4tk8QUmoIKRU\\n9ZKNu8BVIASm2LAXFszj0Mi0PeXZhMbT9m5teMl5Q+h6N/9cNUm/ocU=\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIEQjCCA6ugAwIBAgIEQodApTANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC\\nVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u\\nZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc\\nKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u\\nZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEw\\nMDEwNTAwMDBaFw0xNDA3MjYxODE1MTVaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK\\nEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV\\nBAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqG\\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD\\n1ZQ0Z6IKHLBfaaZAscS3so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80lt\\ncZF+Y7arpl/DpIT4T2JRvvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46\\nOFBbdzEbjbPHJEWap6xtABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZd\\nHFMsfpjNGgYWpGhz0DQEE1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdm\\nt4i3ePLKCqg4qwpkwr9mXZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjggET\\nMIIBDzASBgNVHRMBAf8ECDAGAQH/AgEBMCcGA1UdJQQgMB4GCCsGAQUFBwMBBggr\\nBgEFBQcDAgYIKwYBBQUHAwQwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdo\\ndHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v\\nY3JsLmVudHJ1c3QubmV0L3NlcnZlcjEuY3JsMB0GA1UdDgQWBBSxPsNpA/i/RwHU\\nmCYaCALvY2QrwzALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7\\nUISX8+1i0BowGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEF\\nBQADgYEASA4rbyBiTCiToyQ9WKshz4D4mpeQaiLtWnxHNpnneYR1qySPkgrVYQSu\\nw2pcsszZ5ESHb9uPOGL3RDadurxuB8TUjegf0Qtgo7WczmO+7Wfc+Lrebskly1u1\\nnXZwC99CcvhPQRFkpdLq/NWvEfQVOGecIKhLd1qRMkIy54Wz3zY=\\n-----END CERTIFICATE-----"
  ],
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4450,
  "msm_id": 15002,
  "name": "atlas.ripe.net",
  "port": "https",
  "prb_id": 9,
  "srcaddr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1338811367
}

# Version 4460

Version 4460 is identified by a value between "4460" and "4539" for the key fw in the result.

Changes between 4400 and 4460

  • The key "addr" in 4400 became "dst_addr" in 4460.
  • The key "address" in 4400 became "dst_addr" in 4460.
  • The key "mode" in 4400 became "af" and "proto" or "method" in 4460.
  • The key "name" in 4400 became "dst_name" in 4460.
  • The key "paris-id" in 4400 became "paris_id" in 4460.
  • The key "pf" in 4400 became "af" in 4460.
  • The key "port" in 4400 became "dst_port" in 4460.
  • The key "srcaddr" in 4400 became "src_addr" in 4460.
  • The following fields were added: "method" (where applicable), "ver" (where not already present but applicable), and "type".

# Version 4460 Ping / v6 Ping

View changes since previous version.

Result:

  • "addr" -- IP address of the destination (deprecated) (string)
  • "af" -- address family, 4 or 6 (integer)
  • "avg" -- average round-trip time (float)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (deprecated) (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "ICMP" (string)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array)
    Each element is an associative array consisting of:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (int)
  • "type" -- "ping" (string)

Example result:

{
  "addr": "2001:7fd::1",
  "af": 6,
  "avg": 6.5760000000000005,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "dup": 0,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "max": 15.282999999999999,
  "min": 2.2080000000000002,
  "msm_id": 2001,
  "name": "k.root-servers.net",
  "prb_id": 114,
  "proto": "ICMP",
  "rcvd": 3,
  "result": [
    {
      "rtt": 2.2370000000000001
    },
    {
      "rtt": 2.2080000000000002
    },
    {
      "rtt": 15.282999999999999
    }
  ],
  "sent": 3,
  "size": 0,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "timestamp": 1339665710,
  "ttl": 62,
  "type": "ping"
}

# Version 4460 Traceroute / v6 Traceroute

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "paris_id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "UDP" or "ICMP" (string)
  • "result" -- list of hop elements (array)
    Each element is an associative array consisting of:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array)
      Each element is an associative array consisting of:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "err" -- (optional) error ICMP: "N" (network unreachable,), "H" (destination unreachable), "A" (administratively prohibited), "P" (protocol unreachable), "p" (port unreachable) (string)
        • "rtt" -- round-trip-time of reply, not present when the response is late (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "ittl" -- (optional) time-to-live in packet that triggered the error ICMP. Omitted if equal to 1 (int)
        • "late" -- (optional) number of packets a reply is late, in this case rtt is not present (int)
        • "icmpext" -- [optional] information when icmp header is found in reply (object)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array)
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array)
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)
  • "type" -- "traceroute" (string)

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "endtime": 1339665496,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "msm_id": 6001,
  "paris_id": 4,
  "prb_id": 114,
  "proto": "UDP",
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.2989999999999999,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.4990000000000001,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.8719999999999999,
          "size": 96,
          "ttl": 63
        }
      ]
    },
    {
      "hop": 2,
      "result": [
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 2.4009999999999998,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 2.5409999999999999,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 2.6360000000000001,
          "size": 96,
          "ttl": 63
        }
      ]
    },
    {
      "hop": 3,
      "result": [
        {
          "from": "2001:7fd::1",
          "rtt": 2.4060000000000001,
          "size": 96,
          "ttl": 62
        },
        {
          "from": "2001:7fd::1",
          "rtt": 2.3300000000000001,
          "size": 96,
          "ttl": 62
        },
        {
          "from": "2001:7fd::1",
          "rtt": 2.4060000000000001,
          "size": 96,
          "ttl": 62
        }
      ]
    }
  ],
  "size": 40,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "timestamp": 1339665496,
  "type": "traceroute"
}

# Version 4460 DNS Lookup

View changes since previous version.

Result:

  • "af" -- [optional] IP version: "4" or "6" (int)
  • "dst_addr" -- [optional] IP address of the destination (string)
  • "dst_name" -- [optional] hostname of the destination (string)
  • "error" -- [optional] error message (associative array)
    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "TCP" or "UDP" (string)
  • "qbuf" -- [optional] query payload buffer which was sent to the server, UU encoded (string)
    See example code for decoding the value
  • "result" -- [optional] response from the DNS server (associative array)
    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, UU encoded (string)
      See example code for decoding the value
    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array)
      Each element is an associative array consisting of:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value, (string)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
    • "src_addr" -- [optional] the source IP address added by the probe (string). (fw >= 4470)
    • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver
    • "submax" -- [optional] total number of results within a group (int)
  • "timestamp" -- start time, in Unix timestamp (int)
  • "type" -- "dns" (string)

Notes:

  • If a hostname was provided, both the hostname (dst_name) and the IP address (dst_addr) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The dst_addr field will always be present, except when there is an error.

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "msm_id": 11001,
  "prb_id": 114,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 13,
    "ID": 14016,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "NsCEAAABAAEADQANAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20Ad+2e2AAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAAQABAAfpAAAExikABMB0AAEAAQAH6QAABMDkT8nAgwABAAEAB+kAAATAIQQMwJIAAQABAAfpAAAEgAgKWsChAAEAAQAH6QAABMDL5grAsAABAAEAB+kAAATABQXxwL8AAQABAAfpAAAEwHAkBMDOAAEAAQAH6QAABIA/AjXA3QABAAEAB+kAAATAJJQRwOwAAQABAAfpAAAEwDqAHsD7AAEAAQAH6QAABMEADoHBCgABAAEAB+kAAATHB1MqwRkAAQABAAfpAAAEygwbIQ==",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RDLENGTH": 64,
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2012061400,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 3.4279999999999999,
    "size": 493
  },
  "timestamp": 1339664565,
  "type": "dns"
}

# Version 4460 HTTP

View changes since previous version.

Result:

  • "from" -- IP address of the probe as known by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array)
    Each element is an associative array consisting of:
    • "af" -- address family, 4 or 6 (integer)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "dst_addr" -- target address (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array)
    • "hsize" -- header size in octets (int)
    • "method" -- "GET", "HEAD", or "POST" (string)
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "src_addr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "http" (string)
  • "uri" -- request uri (string)

Example result:

{
"from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
"fw": 4460,
"msm_id": 13023,
"prb_id": 114,
"result": [
{
"af": 6,
"bsize": 1406,
"dst_addr": "2001:67c:2e8:22::c100:68b",
"hsize": 263,
"method": "GET",
"res": 200,
"rt": 10.638999999999999,
"src_addr": "2001:67c:2e8:13:220:4aff:fec6:cd06",
"ver": "1.1"
}
],
"timestamp": 1339665455,
"type": "http",
"uri": "http://www.ripe.net/favicon.ico"
}

# Version 4460 TLS (SSL) GET Cert

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "cert" -- results of query (array)
    Each element of the array is a string containing a base 64 encoded certificate. Newlines are replaced with "\n"
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dst_port" -- port name (string)
  • "from" -- IP address of the probe as known by controller (string)
  • "method" -- "SSL" (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "sslcert" (string)
  • "ver" -- (SSL) protocol versioN (string)

Example result:

{
  "af": 6,
  "cert": [
    "-----BEGIN CERTIFICATE-----\\nMIIGMTCCBRmgAwIBAgIQCfO+bTlrT/6of7r+Sw5WTzANBgkqhkiG9w0BAQUFADBm\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBDQS0zMB4XDTEwMTEwMjAwMDAwMFoXDTEyMTEwNTIzNTk1OVowZTELMAkGA1UE\\nBhMCTkwxFjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxEjAQBgNVBAcTCUFtc3RlcmRh\\nbTERMA8GA1UEChMIUklQRSBOQ0MxFzAVBgNVBAMTDmF0bGFzLnJpcGUubmV0MIGf\\nMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqhOdAts5iMvuw98IDeh1FCw+xfqu5\\nUBLXjbdfmH+3EwYhmFpduN9M8s8CnCC0YC5TsWytgzFPevDQ7QTbNPRMYFjtsBtv\\nz4OR+mlN3LoAMKXic7mJazEH5/jQG0I06+dOaXQT7JDGZbBAFV78B0B0QqRRJmoY\\n1KbvTGtzqBdoUwIDAQABo4IDXjCCA1owHwYDVR0jBBgwFoAUUOpzidsp+xCPnuUB\\nINTeeZlIg/cwHQYDVR0OBBYEFLH8APIsyl0RAI8eXaYwqaY11sfTMC0GA1UdEQQm\\nMCSCDmF0bGFzLnJpcGUubmV0ghJ3d3cuYXRsYXMucmlwZS5uZXQwewYIKwYBBQUH\\nAQEEbzBtMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wRQYI\\nKwYBBQUHMAKGOWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEhp\\nZ2hBc3N1cmFuY2VDQS0zLmNydDAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIw\\nADBlBgNVHR8EXjBcMCygKqAohiZodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vY2Ez\\nLTIwMTBoLmNybDAsoCqgKIYmaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL2NhMy0y\\nMDEwaC5jcmwwggHGBgNVHSAEggG9MIIBuTCCAbUGC2CGSAGG/WwBAwABMIIBpDA6\\nBggrBgEFBQcCARYuaHR0cDovL3d3dy5kaWdpY2VydC5jb20vc3NsLWNwcy1yZXBv\\nc2l0b3J5Lmh0bTCCAWQGCCsGAQUFBwICMIIBVh6CAVIAQQBuAHkAIAB1AHMAZQAg\\nAG8AZgAgAHQAaABpAHMAIABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAIABjAG8AbgBz\\nAHQAaQB0AHUAdABlAHMAIABhAGMAYwBlAHAAdABhAG4AYwBlACAAbwBmACAAdABo\\nAGUAIABEAGkAZwBpAEMAZQByAHQAIABDAFAALwBDAFAAUwAgAGEAbgBkACAAdABo\\nAGUAIABSAGUAbAB5AGkAbgBnACAAUABhAHIAdAB5ACAAQQBnAHIAZQBlAG0AZQBu\\nAHQAIAB3AGgAaQBjAGgAIABsAGkAbQBpAHQAIABsAGkAYQBiAGkAbABpAHQAeQAg\\nAGEAbgBkACAAYQByAGUAIABpAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgAGgAZQBy\\nAGUAaQBuACAAYgB5ACAAcgBlAGYAZQByAGUAbgBjAGUALjAdBgNVHSUEFjAUBggr\\nBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADggEBABh0uT4bltD5QdFj\\nrCSCViuOxPJ4667umtzWFgA/oUYM9D8LkXpPo4A3YPexTf3ssiDzxAhsrFxJRrjh\\nC5/j77TvRtKv1OfwXfgeeqluybYMs+LRkjNHNkEA9lsonrZ0gSAIktYneWOVQlCe\\nEV20yi0oDCPFnk6rCUNoT/dAhHgUX3Iw2p3Hy/ELst3CvMOjvCpaJVTob4t0rOxS\\niOuSC4YAqkP+O0dRoAIGedQ9eqDip6vrqGbK5i1PDo1zh0uOBhvcQ+cRWGnmKv8H\\nmUDBFFTB4e81O9wnzRrV0BRaBzkGEe6EcluRNs9VS1wZA/Y/xDggSn8+cOM52vb3\\nlQuEV20=\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIGVTCCBT2gAwIBAgIQCFH5WYFBRcq94CTiEsnCDjANBgkqhkiG9w0BAQUFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTA3MDQwMzAwMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\\nQ0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR\\nCPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv\\nKEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5\\nBUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf\\n1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs\\nzPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d\\n32duXvsCAwEAAaOCAvcwggLzMA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w\\nggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3\\nLmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH\\nAgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy\\nAHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj\\nAGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg\\nAEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ\\nAGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt\\nAGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj\\nAG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl\\nAHIAZQBuAGMAZQAuMA8GA1UdEwEB/wQFMAMBAf8wNAYIKwYBBQUHAQEEKDAmMCQG\\nCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSBhzCB\\nhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGlnaEFz\\nc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQu\\nY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSMEGDAW\\ngBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUBINTe\\neZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAF1PhPGoiNOjsrycbeUpSXfh59bcqdg1\\nrslx3OXb3J0kIZCmz7cBHJvUV5eR13UWpRLXuT0uiT05aYrWNTf58SHEW0CtWakv\\nXzoAKUMncQPkvTAyVab+hA4LmzgZLEN8rEO/dTHlIxxFVbdpCJG1z9fVsV7un5Tk\\n1nq5GMO41lJjHBC6iy9tXcwFOPRWBW3vnuzoYTYMFEuFFFoMg08iXFnLjIpx2vrF\\nEIRYzwfu45DC9fkpx1ojcflZtGQriLCnNseaIGHr+k61rmsb5OPs4tk8QUmoIKRU\\n9ZKNu8BVIASm2LAXFszj0Mi0PeXZhMbT9m5teMl5Q+h6N/9cNUm/ocU=\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIEQjCCA6ugAwIBAgIEQodApTANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC\\nVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u\\nZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc\\nKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u\\nZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEw\\nMDEwNTAwMDBaFw0xNDA3MjYxODE1MTVaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK\\nEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV\\nBAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqG\\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD\\n1ZQ0Z6IKHLBfaaZAscS3so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80lt\\ncZF+Y7arpl/DpIT4T2JRvvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46\\nOFBbdzEbjbPHJEWap6xtABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZd\\nHFMsfpjNGgYWpGhz0DQEE1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdm\\nt4i3ePLKCqg4qwpkwr9mXZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjggET\\nMIIBDzASBgNVHRMBAf8ECDAGAQH/AgEBMCcGA1UdJQQgMB4GCCsGAQUFBwMBBggr\\nBgEFBQcDAgYIKwYBBQUHAwQwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdo\\ndHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v\\nY3JsLmVudHJ1c3QubmV0L3NlcnZlcjEuY3JsMB0GA1UdDgQWBBSxPsNpA/i/RwHU\\nmCYaCALvY2QrwzALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7\\nUISX8+1i0BowGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEF\\nBQADgYEASA4rbyBiTCiToyQ9WKshz4D4mpeQaiLtWnxHNpnneYR1qySPkgrVYQSu\\nw2pcsszZ5ESHb9uPOGL3RDadurxuB8TUjegf0Qtgo7WczmO+7Wfc+Lrebskly1u1\\nnXZwC99CcvhPQRFkpdLq/NWvEfQVOGecIKhLd1qRMkIy54Wz3zY=\\n-----END CERTIFICATE-----"
  ],
  "dst_addr": "2a01:4f8:121:30a3::78:16",
  "dst_name": "atlas.ripe.net",
  "dst_port": "https",
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "method": "SSL",
  "msm_id": 15002,
  "prb_id": 114,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "timestamp": 1339632166,
  "type": "sslcert",
  "ver": "3.0"
}

# Version 4540

Version 4540 is identified by a value between "4540" and "4569" for the key fw in the result.

Changes between 4460 and 4540

  • Additional key "lts" in ping.
  • Additional keys "readtiming", "ttc", "ttfb", and "ttr" in HTTP.
  • Additional keys "rt" and "ttc" in TLS (SSL) GET Cert.

# Version 4540 Ping / v6 Ping

View changes since previous version.

Result:

  • "addr" -- IP address of the destination (deprecated) (string)
  • "af" -- address family, 4 or 6 (integer)
  • "avg" -- average round-trip time (float)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (deprecated) (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "ICMP" (string)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array)
    Each element is an associative array consisting of:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (int)
  • "type" -- "ping" (string)

Example result:

{
  "addr": "2001:7fd::1",
  "af": 6,
  "avg": 2.2576666666666667,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "dup": 0,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4540,
  "lts": 39,
  "max": 2.4119999999999999,
  "min": 2.0030000000000001,
  "msm_id": 2001,
  "name": "k.root-servers.net",
  "prb_id": 9,
  "proto": "ICMP",
  "rcvd": 3,
  "result": [
    {
      "rtt": 2.4119999999999999
    },
    {
      "rtt": 2.0030000000000001,
      "srcaddr": "2001:67c:2e8:13:220:4aff:fec6:cc9d"
    },
    {
      "rtt": 2.3580000000000001,
      "srcaddr": "2001:67c:2e8:13:220:4aff:fec6:cc9d"
    }
  ],
  "sent": 3,
  "size": 0,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1374756583,
  "ttl": 62,
  "type": "ping"
}

# Version 4540 Traceroute / v6 Traceroute

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "paris_id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "UDP" or "ICMP" (string)
  • "result" -- list of hop elements (array)
    Each element is an associative array consisting of:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array)
      Each element is an associative array consisting of:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "err" -- (optional) error ICMP: "N" (network unreachable,), "H" (destination unreachable), "A" (administratively prohibited), "P" (protocol unreachable), "p" (port unreachable) (string)
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "ittl" -- (optional) time-to-live in packet that triggered the error ICMP. Omitted if equal to 1 (int)
        • "late" -- (optional) number of packets a reply is late, in this case rtt is not present (int)
        • "mtu" -- (optional) path MTU from a packet too big ICMP (int)
        • "rtt" -- round-trip-time of reply, not present when the response is late (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "icmpext" -- [optional] information when icmp header is found in reply (object)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array)
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array)
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)
  • "type" -- "traceroute" (string)

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "endtime": 1339665496,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "msm_id": 6001,
  "paris_id": 4,
  "prb_id": 114,
  "proto": "UDP",
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.2989999999999999,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.4990000000000001,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 2.8719999999999999,
          "size": 96,
          "ttl": 63
        }
      ]
    },
    {
      "hop": 2,
      "result": [
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 2.4009999999999998,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 2.5409999999999999,
          "size": 96,
          "ttl": 63
        },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 2.6360000000000001,
          "size": 96,
          "ttl": 63
        }
      ]
    },
    {
      "hop": 3,
      "result": [
        {
          "from": "2001:7fd::1",
          "rtt": 2.4060000000000001,
          "size": 96,
          "ttl": 62
        },
        {
          "from": "2001:7fd::1",
          "rtt": 2.3300000000000001
          "size": 96,
          "ttl": 62
        },
        {
          "from": "2001:7fd::1",
          "rtt": 2.4060000000000001,
          "size": 96,
          "ttl": 62
        }
      ]
    }
  ],
  "size": 40,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "timestamp": 1339665496,
  "type": "traceroute"
}

# Version 4540 DNS Lookup

View changes since previous version.

Result:

  • "af" -- [optional] IP version: "4" or "6" (int)
  • "dst_addr" -- [optional] IP address of the destination (string)
  • "dst_name" -- [optional] hostname of the destination (string)
  • "error" -- [optional] error message (associative array)
    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "TCP" or "UDP" (string)
  • "qbuf" -- [optional] query payload buffer which was sent to the server, UU encoded (string)
    See example code for decoding the value
  • "result" -- [optional] response from the DNS server (associative array)
    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, UU encoded (string)
      See example code for decoding the value
    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array)
      Each element is an associative array consisting of:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value, (string)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
    • "src_addr" -- [optional] the source IP address added by the probe (string).
    • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver
    • "submax" -- [optional] total number of results within a group (int)
  • "timestamp" -- start time, in Unix timestamp (int)
  • "type" -- "dns" (string)

Notes:

  • If a hostname was provided, both the hostname (dst_name) and the IP address (dst_addr) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The dst_addr field will always be present, except when there is an error.

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "msm_id": 11001,
  "prb_id": 114,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 13,
    "ID": 14016,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "NsCEAAABAAEADQANAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20Ad+2e2AAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAAQABAAfpAAAExikABMB0AAEAAQAH6QAABMDkT8nAgwABAAEAB+kAAATAIQQMwJIAAQABAAfpAAAEgAgKWsChAAEAAQAH6QAABMDL5grAsAABAAEAB+kAAATABQXxwL8AAQABAAfpAAAEwHAkBMDOAAEAAQAH6QAABIA/AjXA3QABAAEAB+kAAATAJJQRwOwAAQABAAfpAAAEwDqAHsD7AAEAAQAH6QAABMEADoHBCgABAAEAB+kAAATHB1MqwRkAAQABAAfpAAAEygwbIQ==",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RDLENGTH": 64,
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2012061400,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 3.4279999999999999,
    "size": 493
  },
  "timestamp": 1339664565,
  "type": "dns"
}

# Version 4540 HTTP

View changes since previous version.

Result:

  • "from" -- IP address of the probe as known by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array)
    Each element is an associative array consisting of:
    • "af" -- address family, 4 or 6 (integer)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "dst_addr" -- target address (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array)
    • "hsize" -- header size in octets (int)
    • "method" -- "GET", "HEAD", or "POST" (string)
    • "readtiming" -- [optional] timing results for reply data (array)
      Each element is an associative array consisting of:
      • "t" -- time since starting to connect when data is received (in milli seconds) (float)
      • "o" -- offset in stream of reply data (int)
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "src_addr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ttc" -- [optional] time to connect to the target (in milli seconds) (float)
    • "ttfb" -- [optional] time to first response byte received by measurent code after starting to connect (in milli seconds) (float)
    • "ttr" -- [optional] time to resolve the DNS name (in milli seconds) (float)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "http" (string)
  • "uri" -- request uri (string)

Example result:

{
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "msm_id": 1013948,
  "fw": 4540,
  "timestamp": 1374759270,
  "uri": "http://www.ripe.net/",
  "prb_id": 9,
  "result": [
    {
      "rt": 51.857999999999997,
      "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
      "hsize": 279,
      "af": 6,
      "bsize": 39851,
      "res": 200,
      "dst_addr": "2001:67c:2e8:22::c100:68b",
      "readtiming": [
        {
          "t": 28.552,
          "o": "0"
        },
        {
          "t": 31.466000000000001,
          "o": "4096"
        },
        {
          "t": 33.752000000000002,
          "o": "8192"
        },
        {
          "t": 36.012,
          "o": "12288"
        },
        {
          "t": 38.866,
          "o": "16384"
        },
        {
          "t": 42.146000000000001,
          "o": "20480"
        },
        {
          "t": 44.302,
          "o": "24576"
        },
        {
          "t": 46.579999999999998,
          "o": "28672"
        },
        {
          "t": 48.886000000000003,
          "o": "32768"
        },
        {
          "t": 50.896999999999998,
          "o": "36864"
        }
      ],
      "ttr": 3.2080000000000002,
      "ttc": 3.1840000000000002,
      "ver": "1.1",
      "ttfb": 28.417999999999999,
      "method": "GET"
    }
  ],
  "type": "http"
}

# Version 4540 TLS (SSL) GET Cert

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "cert" -- results of query (array)
    Each element of the array is a string containing a base 64 encoded certificate. Newlines are replaced with "\n"
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dst_port" -- port name (string)
  • "from" -- IP address of the probe as known by controller (string)
  • "method" -- "SSL" (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "rt" -- [optional] response time in milli seconds from starting to connect to receving the certificates (float)
  • "src_addr" -- source address used by probe (string)
  • "ttc" -- [optional] time in milli seconds that it took to connect (over TCP) to the target (float)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "sslcert" (string)
  • "ver" -- (SSL) protocol versioN (string)

Example result:

{
  "af": 6,
  "cert": [
    "-----BEGIN CERTIFICATE-----\\nMIIGqjCCBZKgAwIBAgIQBNu6PYaCJaYpd2g1kzNSJTANBgkqhkiG9w0BAQUFADBm\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBDQS0zMB4XDTEzMDMxODAwMDAwMFoXDTE0MDYxMDEyMDAwMFowbjELMAkGA1UE\\nBhMCTkwxFjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxEjAQBgNVBAcTCUFtc3RlcmRh\\nbTERMA8GA1UEChMIUklQRSBOQ0MxCzAJBgNVBAsTAklUMRMwEQYDVQQDDAoqLnJp\\ncGUubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6d0G7rz55lcy\\n1gxB6p5eMwwz2Pra2vF7wf3+IclV5RhTAErZmq7yhDCWwRYbgl0g2mHoCxWUd2bO\\nRn9bFZO+3c3b5IWzU9kjcEALOumdIvKa1Gw0EPIaJgJGPIYYO7YpNtpxyL4o+ENL\\nNxplATdIjVTvGpb6oiM5Cf7umBReODnSDmUDpFLCwoHrPzOlQMStBW96oZoTXDW4\\nWPkTgN+JoeV0Di03fwrNGMPY9ePzLEtiinfTXaEgvme4uajiOdB5cf9kIXms141q\\nvFaAnC5EIXW7RSwD+wEAbEtMYS1hzfMsrI5WRnJATdwSt9mXe8NrmsnZLbPxl03D\\n127U86FdZwIDAQABo4IDSjCCA0YwHwYDVR0jBBgwFoAUUOpzidsp+xCPnuUBINTe\\neZlIg/cwHQYDVR0OBBYEFGhAxyPew9BsnnEbDKExdS7m9jlIMB8GA1UdEQQYMBaC\\nCioucmlwZS5uZXSCCHJpcGUubmV0MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU\\nBggrBgEFBQcDAQYIKwYBBQUHAwIwYQYDVR0fBFowWDAqoCigJoYkaHR0cDovL2Ny\\nbDMuZGlnaWNlcnQuY29tL2NhMy1nMjAuY3JsMCqgKKAmhiRodHRwOi8vY3JsNC5k\\naWdpY2VydC5jb20vY2EzLWcyMC5jcmwwggHEBgNVHSAEggG7MIIBtzCCAbMGCWCG\\nSAGG/WwBATCCAaQwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cuZGlnaWNlcnQuY29t\\nL3NzbC1jcHMtcmVwb3NpdG9yeS5odG0wggFkBggrBgEFBQcCAjCCAVYeggFSAEEA\\nbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEA\\ndABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBzACAAYQBjAGMAZQBwAHQAYQBuAGMA\\nZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBDAGUAcgB0ACAAQwBQAC8AQwBQAFMA\\nIABhAG4AZAAgAHQAaABlACAAUgBlAGwAeQBpAG4AZwAgAFAAYQByAHQAeQAgAEEA\\nZwByAGUAZQBtAGUAbgB0ACAAdwBoAGkAYwBoACAAbABpAG0AaQB0ACAAbABpAGEA\\nYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBlACAAaQBuAGMAbwByAHAAbwByAGEA\\ndABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAgAHIAZQBmAGUAcgBlAG4AYwBlAC4w\\newYIKwYBBQUHAQEEbzBtMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy\\ndC5jb20wRQYIKwYBBQUHMAKGOWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E\\naWdpQ2VydEhpZ2hBc3N1cmFuY2VDQS0zLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG\\nSIb3DQEBBQUAA4IBAQB46sTrH1CPFA9nWSHH7zyysBuA0G62ey1ps5GNTP3TEmyp\\n+XCrzp13IoVuxFCT39b/XfbztkpGpIwqeIhIxBEH/jdMeBw6QXonbCrK4bBVY1Lj\\nwEiV4/Ev4Y1uho9FC9DRHOmTr5X4TDpAfiuF+P/h62WAL9XE12luZOAaef/Afxap\\nZ2u+DZHbckDmDZLrMl9/b0XvYJYE7s11SQiR1Bz8kI1rvAodpOeTcn4pp3b70IAq\\nk1XB+floX9aodmfFQm+hgO/QrpbBuqvsjYhnXGnAGhxAYnyqN2ruD0s+oWBTEWLP\\nGPzXQ8m49Ipx20t4UKEXWsNHfMYfnyeodoTpA2mU\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIGWDCCBUCgAwIBAgIQCl8RTQNbF5EX0u/UA4w/OzANBgkqhkiG9w0BAQUFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTA4MDQwMjEyMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\\nQ0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR\\nCPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv\\nKEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5\\nBUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf\\n1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs\\nzPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d\\n32duXvsCAwEAAaOCAvowggL2MA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w\\nggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3\\nLmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH\\nAgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy\\nAHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj\\nAGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg\\nAEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ\\nAGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt\\nAGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj\\nAG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl\\nAHIAZQBuAGMAZQAuMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYIKwYBBQUHAQEEKDAm\\nMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSB\\nhzCBhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGln\\naEFzc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNl\\ncnQuY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSME\\nGDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUB\\nINTeeZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAB7ipUiebNtTOA/vphoqrOIDQ+2a\\nvD6OdRvw/S4iWawTwGHi5/rpmc2HCXVUKL9GYNy+USyS8xuRfDEIcOI3ucFbqL2j\\nCwD7GhX9A61YasXHJJlIR0YxHpLvtF9ONMeQvzHB+LGEhtCcAarfilYGzjrpDq6X\\ndF3XcZpCdF/ejUN83ulV7WkAywXgemFhM9EZTfkI7qA5xSU1tyvED7Ld8aW3DiTE\\nJiiNeXf1L/BXunwH1OH8zVowV36GEEfdMR/X/KLCvzB8XSSq6PmuX2p0ws5rs0bY\\nIb4p1I5eFdZCSucyb6Sxa1GDWL4/bcf72gMhy2oWGU4K8K2Eyl2Us1p292E=\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIEQjCCA6ugAwIBAgIEQodApTANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC\\nVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u\\nZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc\\nKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u\\nZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEw\\nMDEwNTAwMDBaFw0xNDA3MjYxODE1MTVaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK\\nEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV\\nBAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqG\\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD\\n1ZQ0Z6IKHLBfaaZAscS3so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80lt\\ncZF+Y7arpl/DpIT4T2JRvvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46\\nOFBbdzEbjbPHJEWap6xtABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZd\\nHFMsfpjNGgYWpGhz0DQEE1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdm\\nt4i3ePLKCqg4qwpkwr9mXZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjggET\\nMIIBDzASBgNVHRMBAf8ECDAGAQH/AgEBMCcGA1UdJQQgMB4GCCsGAQUFBwMBBggr\\nBgEFBQcDAgYIKwYBBQUHAwQwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdo\\ndHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v\\nY3JsLmVudHJ1c3QubmV0L3NlcnZlcjEuY3JsMB0GA1UdDgQWBBSxPsNpA/i/RwHU\\nmCYaCALvY2QrwzALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7\\nUISX8+1i0BowGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEF\\nBQADgYEASA4rbyBiTCiToyQ9WKshz4D4mpeQaiLtWnxHNpnneYR1qySPkgrVYQSu\\nw2pcsszZ5ESHb9uPOGL3RDadurxuB8TUjegf0Qtgo7WczmO+7Wfc+Lrebskly1u1\\nnXZwC99CcvhPQRFkpdLq/NWvEfQVOGecIKhLd1qRMkIy54Wz3zY=\\n-----END CERTIFICATE-----"
  ],
  "dst_addr": "2001:67c:2e8:22::c100:68b",
  "dst_name": "www.ripe.net",
  "dst_port": "443",
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4540,
  "method": "SSL",
  "msm_id": 15001,
  "prb_id": 9,
  "rt": 25.738,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1374753699,
  "ttc": 3.867,
  "type": "sslcert",
  "ver": "3.0"
}

# Version 4570

Version 4570 is identified by a value between "4570" and "4609" for the key fw in the result.

Changes between 4540 and 4570

  • Size field in ping and traceroute made consistent
  • Addr field is gone

# Version 4570 Ping / v6 Ping

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "avg" -- average round-trip time (float)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (deprecated) (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "ICMP" (string)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array)
    Each element is an associative array consisting of:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "src_Addr" -- [optional] source address if different from the source address in first reply (string)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (data part, not including IP and ICMP header) (int)
  • "src_addr" -- source address used by probe (missing due to a bug)(string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (missing due to a bug)(int)
  • "type" -- "ping" (string)

Example result:

{
  "af": 6,
  "avg": 2.640333333333333,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "dup": 0,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4570,
  "lts": 69,
  "max": 2.6539999999999999,
  "min": 2.625,
  "msm_id": 2001,
  "prb_id": 9,
  "proto": "ICMP",
  "rcvd": 3,
  "result": [
    { "rtt": 2.6539999999999999 },
    { "rtt": 2.6419999999999999 },
    { "rtt": 2.625 }
  ],
  "sent": 3,
  "size": 12,
  "step": 240,
  "timestamp": 1386590507,
  "type": "ping"
}

# Version 4570 Traceroute / v6 Traceroute

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "paris_id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "UDP" or "ICMP" (or "TCP", fw >= 4600) (string)
  • "destination_ip_responded" -- whether the last hop matches the destination address (boolean)
  • "result" -- list of hop elements (array)
    Each element is an associative array consisting of:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array)
      Each element is an associative array consisting of:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "err" -- (optional) error ICMP: "N" (network unreachable,), "H" (destination unreachable), "A" (administratively prohibited), "P" (protocol unreachable), "p" (port unreachable) (string)
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "ittl" -- (optional) time-to-live in packet that triggered the error ICMP. Omitted if equal to 1 (int)
        • "late" -- (optional) number of packets a reply is late, in this case rtt is not present (int)
        • "mtu" -- (optional) path MTU from a packet too big ICMP (int)
        • "rtt" -- round-trip-time of reply, not present when the response is late (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "flags" -- (optional) TCP flags in the reply packet, for TCP traceroute, concatenated, in the order 'F' (FIN), 'S' (SYN), 'R' (RST), 'P' (PSH), 'A' (ACK), 'U' (URG) (fw >= 4600) (string)
        • "icmpext" -- [optional] information when icmp header is found in reply (object)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array)
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array)
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)
  • "type" -- "traceroute" (string)

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "endtime": 1386596919,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4570,
  "msm_id": 6001,
  "paris_id": 4,
  "prb_id": 9,
  "proto": "UDP",
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 4.7960000000000003,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 3.4380000000000002,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 3.149,
          "size": 88,
          "ttl": 64
        }
      ]
    },
    {
      "hop": 2,
      "result": [
        { "x": "*" },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 3.1800000000000002,
          "size": 88,
          "ttl": 63
        },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 3.3849999999999998,
          "size": 88,
          "ttl": 63
        }
      ]
    },
    {
      "hop": 3,
      "result": [
        {
          "from": "2001:7fd::1",
          "rtt": 3.359,
          "size": 88,
          "ttl": 62
        },
        { "x": "*" },
        { "x": "*" }
      ]
    }
  ],
  "size": 40,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1386596906,
  "type": "traceroute"
}

# Version 4570 DNS Lookup

View changes since previous version.

Result:

  • "af" -- [optional] IP version: "4" or "6" (int)
  • "dst_addr" -- [optional] IP address of the destination (string)
  • "dst_name" -- [optional] hostname of the destination (string)
  • "error" -- [optional] error message (associative array)
    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "TCP" or "UDP" (string)
  • "qbuf" -- [optional] query payload buffer which was sent to the server, UU encoded (string)
    See example code for decoding the value
  • "result" -- [optional] response from the DNS server (associative array)
    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, UU encoded (string)
      See example code for decoding the value
    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array)
      Each element is an associative array consisting of:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value, (string)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
    • "src_addr" -- [optional] the source IP address added by the probe (string).
    • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver
    • "submax" -- [optional] total number of results within a group (int)
  • "retry" -- [optional] retry count (int)
  • "timestamp" -- start time, in Unix timestamp (int)
  • "type" -- "dns" (string)

Notes:

  • If a hostname was provided, both the hostname (dst_name) and the IP address (dst_addr) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The dst_addr field will always be present, except when there is an error.

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "msm_id": 11001,
  "prb_id": 114,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 13,
    "ID": 14016,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "NsCEAAABAAEADQANAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20Ad+2e2AAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAAQABAAfpAAAExikABMB0AAEAAQAH6QAABMDkT8nAgwABAAEAB+kAAATAIQQMwJIAAQABAAfpAAAEgAgKWsChAAEAAQAH6QAABMDL5grAsAABAAEAB+kAAATABQXxwL8AAQABAAfpAAAEwHAkBMDOAAEAAQAH6QAABIA/AjXA3QABAAEAB+kAAATAJJQRwOwAAQABAAfpAAAEwDqAHsD7AAEAAQAH6QAABMEADoHBCgABAAEAB+kAAATHB1MqwRkAAQABAAfpAAAEygwbIQ==",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RDLENGTH": 64,
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2012061400,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 3.4279999999999999,
    "size": 493
  },
  "timestamp": 1339664565,
  "type": "dns"
}

6.4. HTTP View changes since previous version.

Result:

  • "from" -- IP address of the probe as known by controller (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array)
    Each element is an associative array consisting of:
    • "af" -- address family, 4 or 6 (integer)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "dst_addr" -- target address (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array)
    • "hsize" -- header size in octets (int)
    • "method" -- "GET", "HEAD", or "POST" (string)
    • "readtiming" -- [optional] timing results for reply data (array)
      Each element is an associative array consisting of:
      • "t" -- time since starting to connect when data is received (in milli seconds) (float)
      • "o" -- offset in stream of reply data (int)
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "src_addr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ttc" -- [optional] time to connect to the target (in milli seconds) (float)
    • "ttfb" -- [optional] time to first response byte received by measurent code after starting to connect (in milli seconds) (float)
    • "ttr" -- [optional] time to resolve the DNS name (in milli seconds) (float)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "http" (string)
  • "uri" -- request uri (string)

Example result:

{
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "msm_id": 1013948,
  "fw": 4540,
  "timestamp": 1374759270,
  "uri": "http://www.ripe.net/",
  "prb_id": 9,
  "result": [
    {
      "rt": 51.857999999999997,
      "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
      "hsize": 279,
      "af": 6,
      "bsize": 39851,
      "res": 200,
      "dst_addr": "2001:67c:2e8:22::c100:68b",
      "readtiming": [
        {
          "t": 28.552,
          "o": "0"
        },
        {
          "t": 31.466000000000001,
          "o": "4096"
        },
        {
          "t": 33.752000000000002,
          "o": "8192"
        },
        {
          "t": 36.012,
          "o": "12288"
        },
        {
          "t": 38.866,
          "o": "16384"
        },
        {
          "t": 42.146000000000001,
          "o": "20480"
        },
        {
          "t": 44.302,
          "o": "24576"
        },
        {
          "t": 46.579999999999998,
          "o": "28672"
        },
        {
          "t": 48.886000000000003,
          "o": "32768"
        },
        {
          "t": 50.896999999999998,
          "o": "36864"
        }
      ],
      "ttr": 3.2080000000000002,
      "ttc": 3.1840000000000002,
      "ver": "1.1",
      "ttfb": 28.417999999999999,
      "method": "GET"
    }
  ],
  "type": "http"
}

# Version 4570 TLS (SSL) GET Cert

View changes since previous version.

Result:

  • "af" -- address family, 4 or 6 (integer)
  • "cert" -- results of query (array)
    Each element of the array is a string containing a base 64 encoded certificate. Newlines are replaced with "\n"
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dst_port" -- port name (string)
  • "from" -- IP address of the probe as known by controller (string)
  • "method" -- "SSL" (string)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "rt" -- [optional] response time in milli seconds from starting to connect to receving the certificates (float)
  • "src_addr" -- source address used by probe (string)
  • "ttc" -- [optional] time in milli seconds that it took to connect (over TCP) to the target (float)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "sslcert" (string)
  • "ver" -- (SSL) protocol versioN (string)

Example result:

{
    "af": 6,
    "cert": [
    "-----BEGIN
    CERTIFICATE-----\\nMIIGqjCCBZKgAwIBAgIQBNu6PYaCJaYpd2g1kzNSJTANBgkqhkiG9w0BAQUFADBm\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBDQS0zMB4XDTEzMDMxODAwMDAwMFoXDTE0MDYxMDEyMDAwMFowbjELMAkGA1UE\\nBhMCTkwxFjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxEjAQBgNVBAcTCUFtc3RlcmRh\\nbTERMA8GA1UEChMIUklQRSBOQ0MxCzAJBgNVBAsTAklUMRMwEQYDVQQDDAoqLnJp\\ncGUubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6d0G7rz55lcy\\n1gxB6p5eMwwz2Pra2vF7wf3+IclV5RhTAErZmq7yhDCWwRYbgl0g2mHoCxWUd2bO\\nRn9bFZO+3c3b5IWzU9kjcEALOumdIvKa1Gw0EPIaJgJGPIYYO7YpNtpxyL4o+ENL\\nNxplATdIjVTvGpb6oiM5Cf7umBReODnSDmUDpFLCwoHrPzOlQMStBW96oZoTXDW4\\nWPkTgN+JoeV0Di03fwrNGMPY9ePzLEtiinfTXaEgvme4uajiOdB5cf9kIXms141q\\nvFaAnC5EIXW7RSwD+wEAbEtMYS1hzfMsrI5WRnJATdwSt9mXe8NrmsnZLbPxl03D\\n127U86FdZwIDAQABo4IDSjCCA0YwHwYDVR0jBBgwFoAUUOpzidsp+xCPnuUBINTe\\neZlIg/cwHQYDVR0OBBYEFGhAxyPew9BsnnEbDKExdS7m9jlIMB8GA1UdEQQYMBaC\\nCioucmlwZS5uZXSCCHJpcGUubmV0MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU\\nBggrBgEFBQcDAQYIKwYBBQUHAwIwYQYDVR0fBFowWDAqoCigJoYkaHR0cDovL2Ny\\nbDMuZGlnaWNlcnQuY29tL2NhMy1nMjAuY3JsMCqgKKAmhiRodHRwOi8vY3JsNC5k\\naWdpY2VydC5jb20vY2EzLWcyMC5jcmwwggHEBgNVHSAEggG7MIIBtzCCAbMGCWCG\\nSAGG/WwBATCCAaQwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cuZGlnaWNlcnQuY29t\\nL3NzbC1jcHMtcmVwb3NpdG9yeS5odG0wggFkBggrBgEFBQcCAjCCAVYeggFSAEEA\\nbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEA\\ndABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBzACAAYQBjAGMAZQBwAHQAYQBuAGMA\\nZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBDAGUAcgB0ACAAQwBQAC8AQwBQAFMA\\nIABhAG4AZAAgAHQAaABlACAAUgBlAGwAeQBpAG4AZwAgAFAAYQByAHQAeQAgAEEA\\nZwByAGUAZQBtAGUAbgB0ACAAdwBoAGkAYwBoACAAbABpAG0AaQB0ACAAbABpAGEA\\nYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBlACAAaQBuAGMAbwByAHAAbwByAGEA\\ndABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAgAHIAZQBmAGUAcgBlAG4AYwBlAC4w\\newYIKwYBBQUHAQEEbzBtMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy\\ndC5jb20wRQYIKwYBBQUHMAKGOWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E\\naWdpQ2VydEhpZ2hBc3N1cmFuY2VDQS0zLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG\\nSIb3DQEBBQUAA4IBAQB46sTrH1CPFA9nWSHH7zyysBuA0G62ey1ps5GNTP3TEmyp\\n+XCrzp13IoVuxFCT39b/XfbztkpGpIwqeIhIxBEH/jdMeBw6QXonbCrK4bBVY1Lj\\nwEiV4/Ev4Y1uho9FC9DRHOmTr5X4TDpAfiuF+P/h62WAL9XE12luZOAaef/Afxap\\nZ2u+DZHbckDmDZLrMl9/b0XvYJYE7s11SQiR1Bz8kI1rvAodpOeTcn4pp3b70IAq\\nk1XB+floX9aodmfFQm+hgO/QrpbBuqvsjYhnXGnAGhxAYnyqN2ruD0s+oWBTEWLP\\nGPzXQ8m49Ipx20t4UKEXWsNHfMYfnyeodoTpA2mU\\n-----END
    CERTIFICATE-----",
    "-----BEGIN
    CERTIFICATE-----\\nMIIGWDCCBUCgAwIBAgIQCl8RTQNbF5EX0u/UA4w/OzANBgkqhkiG9w0BAQUFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTA4MDQwMjEyMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\\nQ0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR\\nCPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv\\nKEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5\\nBUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf\\n1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs\\nzPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d\\n32duXvsCAwEAAaOCAvowggL2MA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w\\nggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3\\nLmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH\\nAgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy\\nAHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj\\nAGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg\\nAEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ\\nAGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt\\nAGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj\\nAG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl\\nAHIAZQBuAGMAZQAuMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYIKwYBBQUHAQEEKDAm\\nMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSB\\nhzCBhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGln\\naEFzc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNl\\ncnQuY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSME\\nGDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUB\\nINTeeZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAB7ipUiebNtTOA/vphoqrOIDQ+2a\\nvD6OdRvw/S4iWawTwGHi5/rpmc2HCXVUKL9GYNy+USyS8xuRfDEIcOI3ucFbqL2j\\nCwD7GhX9A61YasXHJJlIR0YxHpLvtF9ONMeQvzHB+LGEhtCcAarfilYGzjrpDq6X\\ndF3XcZpCdF/ejUN83ulV7WkAywXgemFhM9EZTfkI7qA5xSU1tyvED7Ld8aW3DiTE\\nJiiNeXf1L/BXunwH1OH8zVowV36GEEfdMR/X/KLCvzB8XSSq6PmuX2p0ws5rs0bY\\nIb4p1I5eFdZCSucyb6Sxa1GDWL4/bcf72gMhy2oWGU4K8K2Eyl2Us1p292E=\\n-----END
    CERTIFICATE-----",
    "-----BEGIN
    CERTIFICATE-----\\nMIIEQjCCA6ugAwIBAgIEQodApTANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC\\nVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u\\nZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc\\nKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u\\nZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEw\\nMDEwNTAwMDBaFw0xNDA3MjYxODE1MTVaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK\\nEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV\\nBAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqG\\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD\\n1ZQ0Z6IKHLBfaaZAscS3so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80lt\\ncZF+Y7arpl/DpIT4T2JRvvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46\\nOFBbdzEbjbPHJEWap6xtABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZd\\nHFMsfpjNGgYWpGhz0DQEE1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdm\\nt4i3ePLKCqg4qwpkwr9mXZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjggET\\nMIIBDzASBgNVHRMBAf8ECDAGAQH/AgEBMCcGA1UdJQQgMB4GCCsGAQUFBwMBBggr\\nBgEFBQcDAgYIKwYBBQUHAwQwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdo\\ndHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v\\nY3JsLmVudHJ1c3QubmV0L3NlcnZlcjEuY3JsMB0GA1UdDgQWBBSxPsNpA/i/RwHU\\nmCYaCALvY2QrwzALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7\\nUISX8+1i0BowGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEF\\nBQADgYEASA4rbyBiTCiToyQ9WKshz4D4mpeQaiLtWnxHNpnneYR1qySPkgrVYQSu\\nw2pcsszZ5ESHb9uPOGL3RDadurxuB8TUjegf0Qtgo7WczmO+7Wfc+Lrebskly1u1\\nnXZwC99CcvhPQRFkpdLq/NWvEfQVOGecIKhLd1qRMkIy54Wz3zY=\\n-----END
    CERTIFICATE-----"
    ],
    "dst_addr": "2001:67c:2e8:22::c100:68b",
    "dst_name": "www.ripe.net",
    "dst_port": "443",
    "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
    "fw": 4540,
    "method": "SSL",
    "msm_id": 15001,
    "prb_id": 9,
    "rt": 25.738,
    "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
    "timestamp": 1374753699,
    "ttc": 3.867,
    "type": "sslcert",
    "ver": "3.0"
    }

# Version 4610

Version 4610 is identified by a value between "4610" and "4749" for the key fw in the result.

Changes between 4570 and 4610

  • Additional key "resultset" in DNS
  • for TCP traceroute, "flags" field in the result and "TCP" in "proto" (actually from fw >= 4600)

# Version 4610 Ping / v6 Ping

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)
  • "avg" -- average round-trip time (float)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "name" -- name of the destination (deprecated) (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "ICMP" (string)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array of objects)
    objects have the following fields:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "src_Addr" -- [optional] source address if different from the source address in first reply (string)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (data part, not including IP and ICMP header) (int)
  • "src_addr" -- source address used by probe (missing due to a bug)(string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (missing due to a bug)(int)
  • "type" -- "ping" (string)

Example result:

{
  "af": 6,
  "avg": 2.640333333333333,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "dup": 0,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4570,
  "lts": 69,
  "max": 2.6539999999999999,
  "min": 2.625,
  "msm_id": 2001,
  "prb_id": 9,
  "proto": "ICMP",
  "rcvd": 3,
  "result": [
    { "rtt": 2.6539999999999999 },
    { "rtt": 2.6419999999999999 },
    { "rtt": 2.625 }
  ],
  "sent": 3,
  "size": 12,
  "step": 240,
  "timestamp": 1386590507,
  "type": "ping"
}

# Version 4610 Traceroute / v6 Traceroute

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (from 4650) (int)
  • "msm_id" -- measurement identifier (int)
  • "paris_id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "UDP", "ICMP", or "TCP" (string)
  • "destination_ip_responded" -- whether the last hop matches the destination address (boolean)
  • "result" -- list of hop elements (array of objects)
    objects have the following fields:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array of objects)
      objects have the following fields:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "err" -- (optional) error ICMP: "N" (network unreachable,), "H" (destination unreachable), "A" (administratively prohibited), "P" (protocol unreachable), "p" (port unreachable) "h" (beyond scope, from fw 4650) (string) Unrecognized error codes are represented as integers
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "ittl" -- (optional) time-to-live in packet that triggered the error ICMP. Omitted if equal to 1 (int)
        • "edst" -- (optional) destination address in the packet that triggered the error ICMP if different from the target of the measurement (string)
        • "late" -- (optional) number of packets a reply is late, in this case rtt is not present (int)
        • "mtu" -- (optional) path MTU from a packet too big ICMP (int)
        • "rtt" -- round-trip-time of reply, not present when the response is late (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "flags" -- (optional) TCP flags in the reply packet, for TCP traceroute, concatenated, in the order 'F' (FIN), 'S' (SYN), 'R' (RST), 'P' (PSH), 'A' (ACK), 'U' (URG) (string)
        • "dstoptsize" -- (optional) size of destination options header (IPv6) (int)
        • "hbhoptsize" -- (optional) size of hop-by-hop options header (IPv6) (int)
        • "icmpext" -- [optional] information when icmp header is found in reply (object with the following fields:)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array of objects)
            objects have the following fields:
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array of objects)
              objects have the following fields:
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)
  • "type" -- "traceroute" (string)

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "endtime": 1386596919,
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "fw": 4570,
  "msm_id": 6001,
  "paris_id": 4,
  "prb_id": 9,
  "proto": "UDP",
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 4.7960000000000003,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 3.4380000000000002,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:13::2",
          "rtt": 3.149,
          "size": 88,
          "ttl": 64
        }
      ]
    },
    {
      "hop": 2,
      "result": [
        { "x": "*" },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 3.1800000000000002,
          "size": 88,
          "ttl": 63
        },
        {
          "from": "2001:7f8:1::a502:5152:1",
          "rtt": 3.3849999999999998,
          "size": 88,
          "ttl": 63
        }
      ]
    },
    {
      "hop": 3,
      "result": [
        {
          "from": "2001:7fd::1",
          "rtt": 3.359,
          "size": 88,
          "ttl": 62
        },
        { "x": "*" },
        { "x": "*" }
      ]
    }
  ],
  "size": 40,
  "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "timestamp": 1386596906,
  "type": "traceroute"
}

# Version 4610 DNS Lookup

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- [optional] IP version: "4" or "6" (int)
  • "dst_addr" -- [optional] IP address of the destination (string)
  • "dst_name" -- [optional] hostname of the destination (string)
  • "error" -- [optional] error message (object with the following fields:)
    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (from 4650) (int)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "TCP" or "UDP" (string)
  • "qbuf" -- [optional] query payload buffer which was sent to the server, UU encoded (string)
    See example code for decoding the value
  • "result" -- [optional] response from the DNS server (object with the following fields:)
    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, UU encoded (string)
      See example code for decoding the value
    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array of objects)
      objects have the following fields:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value (from 4710, list of strings, before it was a single string)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
    • "src_addr" -- [optional] the source IP address added by the probe (string).
    • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver
    • "submax" -- [optional] total number of results within a group (int)
  • resultset - [optional] an array of objects containing all the fields of a DNS result object, except for the fields: fw, from, msm_id, prb_id, and type. Available for queries sent to each local resolver.
  • "retry" -- [optional] retry count (int)
  • "timestamp" -- start time, in Unix timestamp (int)
  • "type" -- "dns" (string)

Notes:

  • If a hostname was provided, both the hostname (dst_name) and the IP address (dst_addr) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The dst_addr field will always be present, except when there is an error.

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "from": "2001:67c:2e8:13:220:4aff:fec6:cd06",
  "fw": 4460,
  "msm_id": 11001,
  "prb_id": 114,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 13,
    "ID": 14016,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "NsCEAAABAAEADQANAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20Ad+2e2AAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAAQABAAfpAAAExikABMB0AAEAAQAH6QAABMDkT8nAgwABAAEAB+kAAATAIQQMwJIAAQABAAfpAAAEgAgKWsChAAEAAQAH6QAABMDL5grAsAABAAEAB+kAAATABQXxwL8AAQABAAfpAAAEwHAkBMDOAAEAAQAH6QAABIA/AjXA3QABAAEAB+kAAATAJJQRwOwAAQABAAfpAAAEwDqAHsD7AAEAAQAH6QAABMEADoHBCgABAAEAB+kAAATHB1MqwRkAAQABAAfpAAAEygwbIQ==",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RDLENGTH": 64,
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2012061400,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 3.4279999999999999,
    "size": 493
  },
  "timestamp": 1339664565,
  "type": "dns"
}

Example with resultset:

{
  "from": "193.0.10.135",
  "fw": 4610,
  "msm_id": 1004049,
  "msm_name": "Tdig",
  "prb_id": 9,
  "resultset": [
    {
      "af": 4,
      "dst_addr": "193.0.19.101",
      "proto": "UDP",
      "result": {
        "ANCOUNT": 2,
        "ARCOUNT": 1,
        "ID": 31604,
        "NSCOUNT": 0,
        "QDCOUNT": 1,
        "abuf": "e3SBoAABAAIAAAABA3d3dwRyaXBlA25ldAAAAQABwAwAAQABAAA9dwAEwQAGi8AMAC4AAQAAPXcAnAABBQMAAFRgUz7fqVMXRJlypgRyaXBlA25ldABjtIscm9iFKQJ7XqvACunZM/dSi/NGJ20WNaBXqxiP6/MgxyKs93dl5W6cqdUavqODdx9PK10iBt/aIpX/qo7UcY+hWPisOXRayrZl2HYsw4sK+4i5JoL7n2cjpsjuaC89IBKNR1Wl66clq7zrC+3YtGadruHkhwD7h8DJxI1kkQAAKRAAAACAAAAA",
        "rt": 9.319,
        "size": 225
      },
      "src_addr": "193.0.10.135",
      "subid": 1,
      "submax": 2,
      "time": 1394064205
    },
    {
      "af": 4,
      "dst_addr": "193.0.19.102",
      "proto": "UDP",
      "result": {
        "ANCOUNT": 2,
        "ARCOUNT": 1,
        "ID": 22376,
        "NSCOUNT": 0,
        "QDCOUNT": 1,
        "abuf": "V2iBoAABAAIAAAABA3d3dwRyaXBlA25ldAAAAQABwAwAAQABAAA+2QAEwQAGi8AMAC4AAQAAPtkAnAABBQMAAFRgUz7fqVMXRJlypgRyaXBlA25ldABjtIscm9iFKQJ7XqvACunZM/dSi/NGJ20WNaBXqxiP6/MgxyKs93dl5W6cqdUavqODdx9PK10iBt/aIpX/qo7UcY+hWPisOXRayrZl2HYsw4sK+4i5JoL7n2cjpsjuaC89IBKNR1Wl66clq7zrC+3YtGadruHkhwD7h8DJxI1kkQAAKRAAAACAAAAA",
        "rt": 10.111,
        "size": 225
      },
      "src_addr": "193.0.10.135",
      "subid": 2,
      "submax": 2,
      "time": 1394064206
    }
  ],
  "timestamp": 1394064205,
  "type": "dns"
}

# Version 4610 HTTP

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "from" -- IP address of the probe as known by controller (string)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (from 4650) (int)
  • "msm_id" -- measurement identifier (int)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array of objects)
    objects have the following fields:
    • "af" -- address family, 4 or 6 (integer)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "dst_addr" -- target address (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array)
    • "hsize" -- header size in octets (int)
    • "method" -- "GET", "HEAD", or "POST" (string)
    • "readtiming" -- [optional] timing results for reply data (array of objects)
      objects have the following fields:
      • "t" -- time since starting to connect when data is received (in milli seconds) (float)
      • "o" -- offset in stream of reply data (string) Due to a bug in the code this is currently a string. It will be changed to an integer in a future version.
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "src_addr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ttc" -- [optional] time to connect to the target (in milli seconds) (float)
    • "ttfb" -- [optional] time to first response byte received by measurent code after starting to connect (in milli seconds) (float)
    • "ttr" -- [optional] time to resolve the DNS name (in milli seconds) (float)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "http" (string)
  • "uri" -- request uri (string)

Example result:

{
  "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
  "msm_id": 1013948,
  "fw": 4540,
  "timestamp": 1374759270,
  "uri": "http://www.ripe.net/",
  "prb_id": 9,
  "result": [
    {
      "rt": 51.857999999999997,
      "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
      "hsize": 279,
      "af": 6,
      "bsize": 39851,
      "res": 200,
      "dst_addr": "2001:67c:2e8:22::c100:68b",
      "readtiming": [
        {
          "t": 28.552,
          "o": "0"
        },
        {
          "t": 31.466000000000001,
          "o": "4096"
        },
        {
          "t": 33.752000000000002,
          "o": "8192"
        },
        {
          "t": 36.012,
          "o": "12288"
        },
        {
          "t": 38.866,
          "o": "16384"
        },
        {
          "t": 42.146000000000001,
          "o": "20480"
        },
        {
          "t": 44.302,
          "o": "24576"
        },
        {
          "t": 46.579999999999998,
          "o": "28672"
        },
        {
          "t": 48.886000000000003,
          "o": "32768"
        },
        {
          "t": 50.896999999999998,
          "o": "36864"
        }
      ],
      "ttr": 3.2080000000000002,
      "ttc": 3.1840000000000002,
      "ver": "1.1",
      "ttfb": 28.417999999999999,
      "method": "GET"
    }
  ],
  "type": "http"
}

# Version 4610 NTP

(first introduced in firmware 4660)

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)

  • "dst_name" -- name of the destination (string)

  • "dst_port" -- port name (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "li" -- leap indicator, values "no", "61", "59", or "unknown" (string)

  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)

  • "mode" -- "server" (string)

  • "msm_id" -- measurement identifier (int)

  • "poll" -- poll interval in seconds (float)

  • "prb_id" -- source probe ID (int)

  • "precision" -- precision of the server's clock in seconds (float)

  • "proto" -- "UDP" (string)

  • "ref-id" -- server's reference clock (string)

  • "ref-ts" -- server's reference timestamp in NTP seconds (float)

  • "result" -- results of query (array of objects)
    objects have the following fields:

    • "final-ts" -- NTP time the response from the server is received (float)

    • "offset" -- clock offset between client and server in seconds (float)

    • "origin-ts" -- NTP time the request was sent (float)

    • "receive-ts" -- NTP time the server received the request (float)

    • "rtt" -- round trip time between client and server in seconds (float)

    • "transmit-ts" -- NTP time the server sent the response (float)

  • "root-delay" -- round-trip delay from server to stratum 0 time source in seconds (float)

  • "root-dispersion" -- total dispersion to stratum 0 time source in seconds (float)

  • "src_addr" -- source address used by probe (string)

  • "stratum" -- distance in hops from server to primary time source (int)

  • "timestamp" -- Unix timestamp (int)

  • "type" -- "ntp" (string)

  • "version" -- NTP protocol version (int)

Example result:

{
  "af": 4,
  "dst_addr": "193.0.0.229",
  "dst_name": "193.0.0.229",
  "from": "193.0.10.127",
  "fw": 4661,
  "group_id": 1020238,
  "li": "no",
  "lts": 35,
  "mode": "server",
  "msm_id": 1020238,
  "msm_name": "Ntp",
  "poll": 1,
  "prb_id": 100,
  "precision": 0.0000019074,
  "proto": "UDP",
  "ref-id": "GPS",
  "ref-ts": 3627199554.7434468269,
  "result": [
    {
      "final-ts": 3627199583.5645947456,
      "offset": -0.026271,
      "origin-ts": 3627199583.5634074211,
      "receive-ts": 3627199583.5902590752,
      "rtt": 0.001161,
      "transmit-ts": 3627199583.5902853012
    },
    {
      "final-ts": 3627199583.5661029816,
      "offset": -0.026314,
      "origin-ts": 3627199583.5650439262,
      "receive-ts": 3627199583.59187603,
      "rtt": 0.001035,
      "transmit-ts": 3627199583.5918998718
    },
    {
      "final-ts": 3627199583.5675640106,
      "offset": -0.026291,
      "origin-ts": 3627199583.5665426254,
      "receive-ts": 3627199583.5933327675,
      "rtt": 0.000998,
      "transmit-ts": 3627199583.5933551788
    }
  ],
  "root-delay": 0,
  "root-dispersion": 0.00137329,
  "src_addr": "193.0.10.127",
  "stratum": 1,
  "timestamp": 1418210783,
  "type": "ntp",
  "version": 4
}

# Version 4610 TLS (SSL) GET Cert

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)

  • "alert" -- [optional] error sent by server (see RFC 5246, Section 7.2) (from firmware 4720) (object with the following fields:)

    • "level" -- AlertLevel (integer)

    • "description" -- AlertDescription (integer)

  • "cert" -- [optional] results of query, not present if "alert" is present (array of strings)
    Each string contains a base 64 encoded certificate. Newlines are replaced with "\n"

  • "dst_addr" -- IP address of the destination (string)

  • "dst_name" -- name of the destination (string)

  • "dst_port" -- port name (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (from 4650) (int)

  • "method" -- "SSL" (string)

  • "msm_id" -- measurement identifier (int)

  • "prb_id" -- source probe ID (int)

  • "rt" -- [optional] response time in milli seconds from starting to connect to receving the certificates (float)

  • "src_addr" -- source address used by probe (string)

  • "ttc" -- [optional] time in milli seconds that it took to connect (over TCP) to the target (float)

  • "timestamp" -- Unix timestamp (int)

  • "type" -- "sslcert" (string)

  • "ver" -- (SSL) protocol version (string)

Example result:

{
    "af": 6,
    "cert": [
    "-----BEGIN
    CERTIFICATE-----\\nMIIGqjCCBZKgAwIBAgIQBNu6PYaCJaYpd2g1kzNSJTANBgkqhkiG9w0BAQUFADBm\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBDQS0zMB4XDTEzMDMxODAwMDAwMFoXDTE0MDYxMDEyMDAwMFowbjELMAkGA1UE\\nBhMCTkwxFjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxEjAQBgNVBAcTCUFtc3RlcmRh\\nbTERMA8GA1UEChMIUklQRSBOQ0MxCzAJBgNVBAsTAklUMRMwEQYDVQQDDAoqLnJp\\ncGUubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6d0G7rz55lcy\\n1gxB6p5eMwwz2Pra2vF7wf3+IclV5RhTAErZmq7yhDCWwRYbgl0g2mHoCxWUd2bO\\nRn9bFZO+3c3b5IWzU9kjcEALOumdIvKa1Gw0EPIaJgJGPIYYO7YpNtpxyL4o+ENL\\nNxplATdIjVTvGpb6oiM5Cf7umBReODnSDmUDpFLCwoHrPzOlQMStBW96oZoTXDW4\\nWPkTgN+JoeV0Di03fwrNGMPY9ePzLEtiinfTXaEgvme4uajiOdB5cf9kIXms141q\\nvFaAnC5EIXW7RSwD+wEAbEtMYS1hzfMsrI5WRnJATdwSt9mXe8NrmsnZLbPxl03D\\n127U86FdZwIDAQABo4IDSjCCA0YwHwYDVR0jBBgwFoAUUOpzidsp+xCPnuUBINTe\\neZlIg/cwHQYDVR0OBBYEFGhAxyPew9BsnnEbDKExdS7m9jlIMB8GA1UdEQQYMBaC\\nCioucmlwZS5uZXSCCHJpcGUubmV0MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU\\nBggrBgEFBQcDAQYIKwYBBQUHAwIwYQYDVR0fBFowWDAqoCigJoYkaHR0cDovL2Ny\\nbDMuZGlnaWNlcnQuY29tL2NhMy1nMjAuY3JsMCqgKKAmhiRodHRwOi8vY3JsNC5k\\naWdpY2VydC5jb20vY2EzLWcyMC5jcmwwggHEBgNVHSAEggG7MIIBtzCCAbMGCWCG\\nSAGG/WwBATCCAaQwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cuZGlnaWNlcnQuY29t\\nL3NzbC1jcHMtcmVwb3NpdG9yeS5odG0wggFkBggrBgEFBQcCAjCCAVYeggFSAEEA\\nbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEA\\ndABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBzACAAYQBjAGMAZQBwAHQAYQBuAGMA\\nZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBDAGUAcgB0ACAAQwBQAC8AQwBQAFMA\\nIABhAG4AZAAgAHQAaABlACAAUgBlAGwAeQBpAG4AZwAgAFAAYQByAHQAeQAgAEEA\\nZwByAGUAZQBtAGUAbgB0ACAAdwBoAGkAYwBoACAAbABpAG0AaQB0ACAAbABpAGEA\\nYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBlACAAaQBuAGMAbwByAHAAbwByAGEA\\ndABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAgAHIAZQBmAGUAcgBlAG4AYwBlAC4w\\newYIKwYBBQUHAQEEbzBtMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy\\ndC5jb20wRQYIKwYBBQUHMAKGOWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E\\naWdpQ2VydEhpZ2hBc3N1cmFuY2VDQS0zLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG\\nSIb3DQEBBQUAA4IBAQB46sTrH1CPFA9nWSHH7zyysBuA0G62ey1ps5GNTP3TEmyp\\n+XCrzp13IoVuxFCT39b/XfbztkpGpIwqeIhIxBEH/jdMeBw6QXonbCrK4bBVY1Lj\\nwEiV4/Ev4Y1uho9FC9DRHOmTr5X4TDpAfiuF+P/h62WAL9XE12luZOAaef/Afxap\\nZ2u+DZHbckDmDZLrMl9/b0XvYJYE7s11SQiR1Bz8kI1rvAodpOeTcn4pp3b70IAq\\nk1XB+floX9aodmfFQm+hgO/QrpbBuqvsjYhnXGnAGhxAYnyqN2ruD0s+oWBTEWLP\\nGPzXQ8m49Ipx20t4UKEXWsNHfMYfnyeodoTpA2mU\\n-----END
    CERTIFICATE-----",
    "-----BEGIN
    CERTIFICATE-----\\nMIIGWDCCBUCgAwIBAgIQCl8RTQNbF5EX0u/UA4w/OzANBgkqhkiG9w0BAQUFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTA4MDQwMjEyMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug\\nQ0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR\\nCPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv\\nKEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5\\nBUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf\\n1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs\\nzPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d\\n32duXvsCAwEAAaOCAvowggL2MA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w\\nggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3\\nLmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH\\nAgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy\\nAHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj\\nAGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg\\nAEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ\\nAGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt\\nAGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj\\nAG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl\\nAHIAZQBuAGMAZQAuMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYIKwYBBQUHAQEEKDAm\\nMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSB\\nhzCBhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGln\\naEFzc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNl\\ncnQuY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSME\\nGDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUB\\nINTeeZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAB7ipUiebNtTOA/vphoqrOIDQ+2a\\nvD6OdRvw/S4iWawTwGHi5/rpmc2HCXVUKL9GYNy+USyS8xuRfDEIcOI3ucFbqL2j\\nCwD7GhX9A61YasXHJJlIR0YxHpLvtF9ONMeQvzHB+LGEhtCcAarfilYGzjrpDq6X\\ndF3XcZpCdF/ejUN83ulV7WkAywXgemFhM9EZTfkI7qA5xSU1tyvED7Ld8aW3DiTE\\nJiiNeXf1L/BXunwH1OH8zVowV36GEEfdMR/X/KLCvzB8XSSq6PmuX2p0ws5rs0bY\\nIb4p1I5eFdZCSucyb6Sxa1GDWL4/bcf72gMhy2oWGU4K8K2Eyl2Us1p292E=\\n-----END
    CERTIFICATE-----",
    "-----BEGIN
    CERTIFICATE-----\\nMIIEQjCCA6ugAwIBAgIEQodApTANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC\\nVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u\\nZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc\\nKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u\\nZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEw\\nMDEwNTAwMDBaFw0xNDA3MjYxODE1MTVaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK\\nEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV\\nBAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqG\\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD\\n1ZQ0Z6IKHLBfaaZAscS3so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80lt\\ncZF+Y7arpl/DpIT4T2JRvvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46\\nOFBbdzEbjbPHJEWap6xtABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZd\\nHFMsfpjNGgYWpGhz0DQEE1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdm\\nt4i3ePLKCqg4qwpkwr9mXZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjggET\\nMIIBDzASBgNVHRMBAf8ECDAGAQH/AgEBMCcGA1UdJQQgMB4GCCsGAQUFBwMBBggr\\nBgEFBQcDAgYIKwYBBQUHAwQwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdo\\ndHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v\\nY3JsLmVudHJ1c3QubmV0L3NlcnZlcjEuY3JsMB0GA1UdDgQWBBSxPsNpA/i/RwHU\\nmCYaCALvY2QrwzALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7\\nUISX8+1i0BowGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEF\\nBQADgYEASA4rbyBiTCiToyQ9WKshz4D4mpeQaiLtWnxHNpnneYR1qySPkgrVYQSu\\nw2pcsszZ5ESHb9uPOGL3RDadurxuB8TUjegf0Qtgo7WczmO+7Wfc+Lrebskly1u1\\nnXZwC99CcvhPQRFkpdLq/NWvEfQVOGecIKhLd1qRMkIy54Wz3zY=\\n-----END
    CERTIFICATE-----"
    ],
    "dst_addr": "2001:67c:2e8:22::c100:68b",
    "dst_name": "www.ripe.net",
    "dst_port": "443",
    "from": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
    "fw": 4540,
    "method": "SSL",
    "msm_id": 15001,
    "prb_id": 9,
    "rt": 25.738,
    "src_addr": "2001:67c:2e8:13:220:4aff:fec6:cc9d",
    "timestamp": 1374753699,
    "ttc": 3.867,
    "type": "sslcert",
    "ver": "3.0"
    }

# Version 4750

Version 4750 is identified by a value between "4750" and "4999" for the key fw in the result.

Changes between 4610 and 4749

  • "Lts" in all measurements
  • RDATA field in DNS measuremets is now a list of strings
  • Escape sequence for DNS measurements is now \ddd (three decimal digits)

# Version 4750 Ping / v6 Ping

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)
  • "avg" -- average round-trip time (float)
  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "Ping" (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "ICMP" (string)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array of objects)
    objects have the following fields:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "src_Addr" -- [optional] source address if different from the source address in first reply (string)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (data part, not including IP and ICMP header) (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (missing due to a bug)(int)
  • "ttr" -- time to resolve dst_name in milliseconds (from version 4900) (float)
  • "type" -- "ping" (string)

Example result:

{
  "af": 6,
  "avg": 11.0863386667,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "dup": 0,
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 36,
  "max": 11.128323,
  "min": 11.045379,
  "msm_id": 2001,
  "msm_name": "Ping",
  "prb_id": 9,
  "proto": "ICMP",
  "rcvd": 3,
  "result": [{ "rtt": 11.085314 }, { "rtt": 11.045379 }, { "rtt": 11.128323 }],
  "sent": 3,
  "size": 20,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503360160,
  "ttl": 59,
  "type": "ping"
}

# Version 4750 Traceroute / v6 Traceroute

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)
  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "Traceroute" (string)
  • "paris_id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "UDP", "ICMP", or "TCP" (string)
  • "destination_ip_responded" -- whether the last hop matches the destination address (boolean)
  • "result" -- list of hop elements (array of objects)
    objects have the following fields:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array of objects)
      objects have the following fields:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "err" -- (optional) error ICMP: "N" (network unreachable,), "H" (destination unreachable), "A" (administratively prohibited), "P" (protocol unreachable), "p" (port unreachable) "h" (string) Unrecognized error codes are represented as integers
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "itos" -- (optional) type-of-service (IPv6 traffic class) in the packet that triggered the error ICMP. Omitted if zero and the TOS/Traffic Class field is not set in outgoing packets (int) (from version 4940)
        • "ittl" -- (optional) time-to-live in the packet that triggered the error ICMP. Omitted if equal to 1 (int)
        • "edst" -- (optional) destination address in the packet that triggered the error ICMP if different from the target of the measurement (string)
        • "late" -- (optional) number of packets a reply is late, in this case rtt is not present (int)
        • "mtu" -- (optional) path MTU from a packet too big ICMP (int)
        • "rtt" -- round-trip-time of reply, not present when the response is late (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "flags" -- (optional) TCP flags in the reply packet, for TCP traceroute, concatenated, in the order 'F' (FIN), 'S' (SYN), 'R' (RST), 'P' (PSH), 'A' (ACK), 'U' (URG) (string)
        • "dstoptsize" -- (optional) size of destination options header (IPv6) (int)
        • "hbhoptsize" -- (optional) size of hop-by-hop options header (IPv6) (int)
        • "icmpext" -- [optional] information when icmp header is found in reply (object with the following fields:)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array of objects).
            objects have the following fields:
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array of objects)
              objects have the following fields:
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)
  • "tos" -- (optional) type-of-service (IPv6 traffic class) in the reply packet. Omitted if zero and the TOS/Traffic Class field is not set in outgoing packets (int) (from version 4940)
  • "ttr" -- time to resolve dst_name in milliseconds (from version 4900) (float)
  • "type" -- "traceroute" (string)

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "endtime": 1503360225,
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 45,
  "msm_id": 6001,
  "msm_name": "Traceroute",
  "paris_id": 6,
  "prb_id": 9,
  "proto": "UDP",
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:ffe2::1",
          "rtt": 2.127,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:ffe2::1",
          "rtt": 1.821,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:ffe2::1",
          "rtt": 1.796,
          "size": 88,
          "ttl": 64
        }
      ]
    },
    {
      "hop": 2,
      "result": [{ "x": "*" }, { "x": "*" }, { "x": "*" }]
    },
    {
      "hop": 3,
      "result": [
        {
          "from": "2001:67c:2e8:101::1:2",
          "rtt": 2.908,
          "size": 88,
          "ttl": 62
        },
        {
          "from": "2001:67c:2e8:101::1:2",
          "rtt": 2.417,
          "size": 88,
          "ttl": 62
        },
        {
          "from": "2001:67c:2e8:101::1:2",
          "rtt": 2.511,
          "size": 88,
          "ttl": 62
        }
      ]
    },
    {
      "hop": 4,
      "result": [
        {
          "from": "2001:7f8:1::a500:1257:1",
          "rtt": 2.706,
          "size": 88,
          "ttl": 61
        },
        {
          "from": "2001:7f8:1::a500:1257:1",
          "rtt": 2.623,
          "size": 88,
          "ttl": 61
        },
        {
          "from": "2001:7f8:1::a500:1257:1",
          "rtt": 2.93,
          "size": 88,
          "ttl": 61
        }
      ]
    },
    {
      "hop": 5,
      "result": [{ "x": "*" }, { "x": "*" }, { "x": "*" }]
    },
    {
      "hop": 6,
      "result": [
        {
          "from": "2a00:800:0:1::7a:2",
          "rtt": 10.2,
          "size": 88,
          "ttl": 59
        },
        {
          "from": "2a00:800:0:1::7a:2",
          "rtt": 10.174,
          "size": 88,
          "ttl": 59
        },
        {
          "from": "2a00:800:0:1::7a:2",
          "rtt": 10.161,
          "size": 88,
          "ttl": 59
        }
      ]
    },
    {
      "hop": 7,
      "result": [
        {
          "from": "2001:7f8:4::6240:1",
          "rtt": 10.785,
          "size": 88,
          "ttl": 60
        },
        {
          "from": "2001:7f8:4::6240:1",
          "rtt": 10.75,
          "size": 88,
          "ttl": 60
        },
        {
          "from": "2001:7f8:4::6240:1",
          "rtt": 29.901,
          "size": 88,
          "ttl": 60
        }
      ]
    },
    {
      "hop": 8,
      "result": [
        {
          "err": "A",
          "from": "2001:7fd::1",
          "rtt": 10.605,
          "size": 88,
          "ttl": 59
        },
        {
          "err": "A",
          "from": "2001:7fd::1",
          "rtt": 11.056,
          "size": 88,
          "ttl": 59
        },
        {
          "err": "A",
          "from": "2001:7fd::1",
          "rtt": 10.999,
          "size": 88,
          "ttl": 59
        }
      ]
    }
  ],
  "size": 40,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503360201,
  "type": "traceroute"
}

# Version 4750 DNS Lookup

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- [optional] IP version: "4" or "6" (int)
  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "dst_addr" -- [optional] IP address of the destination (string)
  • "dst_name" -- [optional] hostname of the destination (string)
  • "error" -- [optional] error message (object with the following fields:)
    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "Tdig" (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "TCP" or "UDP" (string)
  • "qbuf" -- [optional] query payload buffer which was sent to the server, base64 encoded (string)
    See example code for decoding the value
  • "result" -- [optional] response from the DNS server (object with the following fields:)
    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, base64 encoded (string)
      See example code for decoding the value
    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array of objects)
      objects have the following fields:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value (list of strings)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
  • resultset - [optional] an array of objects containing all the fields of a DNS result object, except for the fields: fw, from, msm_id, prb_id, and type. Available for queries sent to each local resolver.
  • "retry" -- [optional] retry count (int)
  • "src_addr" -- [optional] the source IP address added by the probe (string).
  • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver (int)
  • "submax" -- [optional] total number of results within a group (int)
  • "timestamp" -- start time, in Unix timestamp (int)
  • "type" -- "dns" (string)

Notes:

  • If a hostname was provided, both the hostname (dst_name) and the IP address (dst_addr) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The dst_addr field will always be present, except when there is an error.

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 38,
  "msm_id": 11001,
  "msm_name": "Tdig",
  "prb_id": 9,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 8,
    "ID": 20790,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "UTaEAAABAAEADQAIAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20AeDo7WQAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAHAABAAfpAAAQIAEFA7o+AAAAAAAAAAIAMMB0ABwAAQAH6QAAECABBQACAAAAAAAAAAAAAAvAgwAcAAEAB+kAABAgAQUAAAIAAAAAAAAAAAAMwJIAHAABAAfpAAAQIAEFAAAtAAAAAAAAAAAADcChABwAAQAH6QAAECABBQAAqAAAAAAAAAAAAA7AsAAcAAEAB+kAABAgAQUAAC8AAAAAAAAAAAAPwL8AHAABAAfpAAAQIAEFAAASAAAAAAAAAAANDcDOABwAAQAH6QAAECABBQAAAQAAAAAAAAAAAFM=",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2017082201,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 6.715,
    "size": 509
  },
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503447622,
  "type": "dns"
}

Example with resultset:

{
  "from": "193.0.0.78",
  "fw": 4790,
  "group_id": 1688543,
  "lts": 36,
  "msm_id": 1688543,
  "msm_name": "Tdig",
  "prb_id": 9,
  "resultset": [
    {
      "af": 4,
      "dst_addr": "193.0.19.102",
      "lts": 36,
      "proto": "UDP",
      "result": {
        "ANCOUNT": 1,
        "ARCOUNT": 0,
        "ID": 12040,
        "NSCOUNT": 0,
        "QDCOUNT": 1,
        "abuf": "LwiBgAABAAEAAAAAA3d3dwRyaXBlA25ldAAAAQABwAwAAQABAAASCAAEwQAGiw==",
        "rt": 6.828,
        "size": 46
      },
      "src_addr": "10.2.0.10",
      "subid": 1,
      "submax": 2,
      "time": 1503447741
    },
    {
      "af": 4,
      "dst_addr": "193.0.19.101",
      "lts": 37,
      "proto": "UDP",
      "result": {
        "ANCOUNT": 1,
        "ARCOUNT": 0,
        "ID": 29001,
        "NSCOUNT": 0,
        "QDCOUNT": 1,
        "abuf": "cUmBgAABAAEAAAAAA3d3dwRyaXBlA25ldAAAAQABwAwAAQABAAAobwAEwQAGiw==",
        "rt": 6.765,
        "size": 46
      },
      "src_addr": "10.2.0.10",
      "subid": 2,
      "submax": 2,
      "time": 1503447742
    }
  ],
  "timestamp": 1503447741,
  "type": "dns"
}

# Version 4750 HTTP

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "from" -- IP address of the probe as known by controller (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "HTTPGet" (string)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array of objects)
    objects have the following fields:
    • "af" -- address family, 4 or 6 (integer)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "dst_addr" -- target address (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array of strings)
    • "hsize" -- header size in octets (int)
    • "method" -- "GET", "HEAD", or "POST" (string)
    • "readtiming" -- [optional] timing results for reply data (array of objects)
      objects have the following fields:
      • "o" -- offset in stream of reply data (int, was string before 4790)
      • "t" -- time since starting to connect when data is received (in milli seconds) (float)
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "src_addr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ttc" -- [optional] time to connect to the target (in milli seconds) (float)
    • "ttfb" -- [optional] time to first response byte received by measurent code after starting to connect (in milli seconds) (float)
    • "ttr" -- [optional] time to resolve the DNS name (in milli seconds) (float)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "http" (string)
  • "uri" -- request uri (string)

Example result:

{
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "group_id": 9250352,
  "lts": 112,
  "msm_id": 9250352,
  "msm_name": "HTTPGet",
  "prb_id": 9,
  "result": [
    {
      "af": 6,
      "bsize": 1134,
      "dst_addr": "2001:67c:2e8:11::c100:136b",
      "header": [
        "Server: nginx/1.10.2",
        "Date: Wed,23 Aug 2017 11:46:55 GMT",
        "Content-Type: text/html",
        "Transfer-Encoding: chunked",
        "Connection: close",
        ""
      ],
      "hsize": 131,
      "method": "GET",
      "readtiming": [
        {
          "o": 0,
          "t": 32.455686
        }
      ],
      "res": 200,
      "rt": 36.556807,
      "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
      "ttc": 26.076677,
      "ttfb": 32.31591,
      "ttr": 0.430849,
      "ver": "1.1"
    }
  ],
  "timestamp": 1503488816,
  "type": "http",
  "uri": "http://nl-ams-as3333.anchors.atlas.ripe.net:80/1024"
}

# Version 4750 NTP

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)

  • "dst_name" -- name of the destination (string)

  • "dst_port" -- port name (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)

  • "li" -- leap indicator, values "no", "61", "59", or "unknown" (string)

  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)

  • "mode" -- "server" (string)

  • "msm_id" -- measurement identifier (int)

  • "msm_name" -- measurement type "Ntp" (string)

  • "poll" -- poll interval in seconds (float)

  • "prb_id" -- source probe ID (int)

  • "precision" -- precision of the server's clock in seconds (float)

  • "proto" -- "UDP" (string)

  • "ref-id" -- server's reference clock (string)

  • "ref-ts" -- server's reference timestamp in NTP seconds (float)

  • "result" -- results of query (array of objects)
    objects have the following fields:

    • "final-ts" -- NTP time the response from the server is received (float)

    • "offset" -- clock offset between client and server in seconds (float)

    • "origin-ts" -- NTP time the request was sent (float)

    • "receive-ts" -- NTP time the server received the request (float)

    • "rtt" -- round trip time between client and server in seconds (float)

    • "transmit-ts" -- NTP time the server sent the response (float)

  • "root-delay" -- round-trip delay from server to stratum 0 time source in seconds (float)

  • "root-dispersion" -- total dispersion to stratum 0 time source in seconds (float)

  • "src_addr" -- source address used by probe (string)

  • "stratum" -- distance in hops from server to primary time source (int)

  • "timestamp" -- Unix timestamp (int)

  • "ttr" -- time to resolve dst_name in milliseconds (from version 4900) (float)

  • "type" -- "ntp" (string)

  • "version" -- NTP protocol version (int)

Example result:

{
  "af": 6,
  "dst_addr": "2001:bc8:24c7:300::123",
  "dst_name": "2.pool.ntp.org",
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "group_id": 2048609,
  "li": "no",
  "lts": 47,
  "mode": "server",
  "msm_id": 2048609,
  "msm_name": "Ntp",
  "poll": 8,
  "prb_id": 9,
  "precision": 1.192e-7,
  "proto": "UDP",
  "ref-id": "c14fed0e",
  "ref-ts": 3712434647.7366428375,
  "result": [
    {
      "final-ts": 3712436069.4462752342,
      "offset": -0.809977,
      "origin-ts": 3712436069.4429988861,
      "receive-ts": 3712436070.2545785904,
      "rtt": 0.003206,
      "transmit-ts": 3712436070.2546486855
    },
    {
      "final-ts": 3712436069.4519329071,
      "offset": -0.809862,
      "origin-ts": 3712436069.4494876862,
      "receive-ts": 3712436070.2605471611,
      "rtt": 0.002394,
      "transmit-ts": 3712436070.2605981827
    },
    {
      "final-ts": 3712436069.4576249123,
      "offset": -0.809849,
      "origin-ts": 3712436069.4552330971,
      "receive-ts": 3712436070.2662582397,
      "rtt": 0.002352,
      "transmit-ts": 3712436070.2662987709
    }
  ],
  "root-delay": 0.00871277,
  "root-dispersion": 0.0375824,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "stratum": 2,
  "timestamp": 1503447269,
  "type": "ntp",
  "version": 4
}

# Version 4750 TLS (SSL) GET Cert

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)

  • "alert" -- [optional] error sent by server (see RFC 5246, Section 7.2), object with the following fields:

    • "level" -- AlertLevel (integer)

    • "description" -- AlertDescription (integer)

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)

  • "cert" -- [optional] results of query, not present if "alert" is present (array of strings)
    Each element of the array is a string containing a base 64 encoded certificate. Newlines are replaced with "\n"

  • "dst_addr" -- IP address of the destination (string)

  • "dst_name" -- name of the destination (string)

  • "dst_port" -- port name (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)

  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)

  • "method" -- "SSL" or "TLS" (string)

  • "msm_id" -- measurement identifier (int)

  • "msm_name" -- measurement type "SSLCert" (string)

  • "prb_id" -- source probe ID (int)

  • "rt" -- [optional] response time in milli seconds from starting to connect to receving the certificates (float)

  • "server_cipher" -- [optional] cipher selected by server as a hexadecimal number (from version 4900) (string)

  • "src_addr" -- source address used by probe (string)

  • "ttc" -- [optional] time in milli seconds that it took to connect (over TCP) to the target (float)

  • "timestamp" -- Unix timestamp (int)

  • "ttr" -- time to resolve dst_name in milliseconds (from version 4900) (float)

  • "type" -- "sslcert" (string)

  • "ver" -- (SSL/TLS) protocol version (string)

Example result:

{
  "af": 6,
  "cert": [
    "-----BEGIN CERTIFICATE-----\\nMIIGMjCCBRqgAwIBAgIQD8TjNXAZtd7GHX4fwUPe9jANBgkqhkiG9w0BAQsFADBw\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNz\\ndXJhbmNlIFNlcnZlciBDQTAeFw0xNzA3MjUwMDAwMDBaFw0xODEwMTIxMjAwMDBa\\nMEkxCzAJBgNVBAYTAk5MMRIwEAYDVQQHEwlBbXN0ZXJkYW0xETAPBgNVBAoTCFJJ\\nUEUgTkNDMRMwEQYDVQQDDAoqLnJpcGUubmV0MIICIjANBgkqhkiG9w0BAQEFAAOC\\nAg8AMIICCgKCAgEArtORS6Luc+bU1dBK2pR4axFhzhlG48QBgO149UzSpRiPQh3s\\nSH+6GoQQafmYjRYlkmybN92sOed/wfaWq8/vvxFmZ/K5yyOhnDs46z079AXAqnY4\\ne1dgALbIM4ITskoT0zo/+OZTCZsKfSn7az0S04DU/OWictRI4ilUPAONX02aksB7\\nJddzAvK07V15YQ2HrtG48tJ/DbKWuTqWmkuPuSx3QBECyxWuHsdxwEaWlVgXZk3H\\n3hbOswszBnNIywPqGQdQ4ApPi0gXnWaSudzP92Al1RElHxGnuYfcFHSTQXC54JT7\\nkbjQjI9Vj0Qa4z/IYBNH57iUHqwOpEftYr5m4SOea400ghnHxL0J87LHBwpTMbqk\\nNK3h9KM1jf4URBlveeMydStdeHz9KVUFOnRx0M2eYwi6HAchnRQkNcobMbhNuZhh\\n+Qp+G+O8T0JY1ciEPf+UNS3EEDNl+NAe57sJl+CU3u0lYhRUAZQJpYP6ExpjW9Qa\\nFUkPRqGx4VMaBWzB6cAVhENmt5d/ZSglmUK0SwW67hpyUN0GJd81Ed7vXwU2reLL\\n7f+ix1pMbHlEmC338sv5j+9JZz7MvAW0E/axZwQY1YSqxQzEoyE8wCCHH6PKV/z2\\n2v9JPc2PJBWjvGtPNUDYS4paDszCeHmyhIoquDDgrU1EUV8877fv8ZgZAGMCAwEA\\nAaOCAe0wggHpMB8GA1UdIwQYMBaAFFFo/5CvAgd1PMzZZWRiohK4WXI7MB0GA1Ud\\nDgQWBBRgjLhcTWaOUAtxhZZ1Hkl4x7SibzAfBgNVHREEGDAWggoqLnJpcGUubmV0\\ngghyaXBlLm5ldDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG\\nCCsGAQUFBwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0\\nLmNvbS9zaGEyLWhhLXNlcnZlci1nMS5jcmwwNKAyoDCGLmh0dHA6Ly9jcmw0LmRp\\nZ2ljZXJ0LmNvbS9zaGEyLWhhLXNlcnZlci1nMS5jcmwwTAYDVR0gBEUwQzA3Bglg\\nhkgBhv1sAQEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29t\\nL0NQUzAIBgZngQwBAgIwgYMGCCsGAQUFBwEBBHcwdTAkBggrBgEFBQcwAYYYaHR0\\ncDovL29jc3AuZGlnaWNlcnQuY29tME0GCCsGAQUFBzAChkFodHRwOi8vY2FjZXJ0\\ncy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEySGlnaEFzc3VyYW5jZVNlcnZlckNB\\nLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBhGz3DS/C/7Yim\\nwhSQobJvqt2Wrr5oVk5pM1i7vh+Lr/ecaEg3qRL/TlXqA7OIgCzuQnYNBBNaS/Px\\nXWOrQJt2c0zEAdJlvBa/OZzntbaB3DlsI/HdN9k7J2yyiKpzlKoktxbWGZ+p62/G\\n0F4VdOzQoI+2A9NbyvW5RzMx1c6BuIDJGJHDRvnSqry5+1E9cJtoAfTQexLwJu6x\\nlNMuJO+u/Lrz4DTwKvAyX+j3W810L8QISvNiyUJuG5JgXW6vCkL+TOhKHEJqFwVJ\\n4FNef/bewoBHy8AasJmIziRhs/jmgchlykX2R+Mktj7AkBr5Gj2Oy7xTg+LeTWjW\\nstR8lihH\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy\\nYW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2\\n4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC\\nKq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1\\nitrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn\\n4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X\\nsh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft\\nbZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA\\nMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\\nNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy\\ndC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t\\nL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG\\nBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ\\nUzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D\\naQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd\\naOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH\\nE+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly\\n/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu\\nxICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF\\n0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae\\ncPUeybQ=\\n-----END CERTIFICATE-----"
  ],
  "dst_addr": "2001:67c:2e8:22::c100:68b",
  "dst_name": "www.ripe.net",
  "dst_port": "443",
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 58,
  "method": "TLS",
  "msm_id": 15001,
  "msm_name": "SSLCert",
  "prb_id": 9,
  "rt": 22.177541,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503448834,
  "ttc": 4.284673,
  "type": "sslcert",
  "ver": "1.2"
}

# Version 4750 Wifi measurement

(first introduced in firmware 4755)

A measurement result is a JSON object with the following fields:

  • "bssid_list" -- array of objects with the following fields:

    • "auth" -- authentication options (string)

    • "bssid" -- MAC address of base station (string)

    • "freq" -- channel frequency in MHz (string)

    • "ssid" -- SSID (string)

    • "strength" -- signal strength (dB)

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)

  • "error" -- reason for failure (string)

  • "fw" -- probe's firmware version (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)

  • "msm_id" -- measurement identifier (int)

  • "msm_name" -- "Wifi" (string)

  • "prb_id" -- probe identifier (int)

  • "timestamp" -- Unix timestamp (int)

  • "type" -- "wifi" (string)

  • "wpa_supplicant" -- object with the following fields:

    • "EAP TLS cipher" -- (string)

    • "EAP state" -- (string)

    • "EAP-TTLSv0 Phase2 method" -- (string)

    • "EAP-PEAPv0 Phase2 method" -- (string)

    • "Supplicant PAE state" -- (string)

    • "address" -- local MAC address (string)

    • "bssid" -- MAC address of base station (string)

    • "connect-time" -- time in seconds spend trying to connect (integer)

    • "group_cipher" -- multicast cipher (string)

    • "id" -- (string)

    • "key_mgmt" -- key management protocol (string)

    • "mode" -- (string)

    • "pairwise_cipher" -- point-to-point cipher (string)

    • "selectedMethod" -- (string)

    • "ssid" -- SSID (string)

    • "suppPortStatus" -- (string)

    • "wpa_state" -- final state (string)

Example result:

{
  "bssid_list": [
    {
      "auth": "[WPA2-EAP-CCMP][ESS]",
      "bssid": "c4:13:e2:09:3e:d4",
      "freq": "2412",
      "ssid": "eduroam",
      "strength": -64
    }
  ],
  "bundle": 1503318167,
  "from": "2001:67c:2e8:110:fad1:11ff:fea9:dd68",
  "fw": 4792,
  "group_id": 1030445,
  "msm_id": 1030445,
  "msm_name": "WiFi",
  "prb_id": 82,
  "stored_timestamp": 1503318180,
  "timestamp": 1503318167,
  "type": "wifi",
  "wpa_supplicant": {
    "EAP TLS cipher": "AES-128-SHA",
    "EAP state": "SUCCESS",
    "EAP-TTLSv0 Phase2 method": "EAP-MD5",
    "Supplicant PAE state": "AUTHENTICATED",
    "address": "fa:d1:11:a9:dd:68",
    "bssid": "c4:13:e2:09:3e:d4",
    "connect-time": "2",
    "group_cipher": "CCMP",
    "id": "0",
    "key_mgmt": "WPA2/IEEE 802.1X/EAP",
    "mode": "station",
    "pairwise_cipher": "CCMP",
    "selectedMethod": "21 (EAP-TTLS)",
    "ssid": "eduroam",
    "suppPortStatus": "Authorized",
    "wpa_state": "COMPLETED"
  }
}

# Version 5000

Version 5000 is identified by a value of "5000" or greater for the key fw in the result. The "mver" is 2.0.0

Changes between 4750 and 4999

  • Measurements have 'bundle' if they are part of a wifi measurement group.
  • The 'o' field in readtiming in http results is now an integer instead of a string
  • A 'ttr' field to record how long name resolution took
  • Sslgetcert reports in 'server_cipher' which cipher was selected by the server
  • A 'itos' and 'tos' fields to record the type-of-service (IPv6 traffic class) field
  • Wifi measurements are discontinued.

Changes from 5010 (mver 2.2.0)

  • Optional ttl field in DNS measurements

# Version 5000 Ping / v6 Ping

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)
  • "avg" -- average round-trip time (float)
  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "dup" -- number of duplicate packets (int)
  • "from" -- IP address of the probe as known by the controller (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "max" -- maximum round-trip time (float)
  • "min" -- minimum round-trip time (float)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "Ping" (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "ICMP" (string)
  • "rcvd" -- number of packets received (int)
  • "result" -- variable content, depending on type of response (array of objects)
    objects have the following fields:
    • Case: Timeout
      • "x" -- "*" (string)
    • Case: Error
      • "error" -- description of error (string)
    • Case: Reply
      • "rtt" -- round-trip-time in milliseconds (float)
      • "src_Addr" -- [optional] source address if different from the source address in first reply (string)
      • "ttl" -- [optional] time-to-live reply if different from ttl in first reply (int)
      • "dup" -- [optional] signals that the reply is a duplicate (int)
  • "sent" -- number of packets sent (int)
  • "size" -- packet size (data part, not including IP and ICMP header) (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp (int)
  • "ttl" -- time-to-live field in the first reply (missing due to a bug)(int)
  • "ttr" -- time to resolve dst_name in milliseconds (float)
  • "type" -- "ping" (string)

Example result:

{
  "af": 6,
  "avg": 11.0863386667,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "dup": 0,
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 36,
  "max": 11.128323,
  "min": 11.045379,
  "msm_id": 2001,
  "msm_name": "Ping",
  "prb_id": 9,
  "proto": "ICMP",
  "rcvd": 3,
  "result": [{ "rtt": 11.085314 }, { "rtt": 11.045379 }, { "rtt": 11.128323 }],
  "sent": 3,
  "size": 20,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503360160,
  "ttl": 59,
  "type": "ping"
}

# Version 5000 Traceroute / v6 Traceroute

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)
  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "dst_addr" -- IP address of the destination (string)
  • "dst_name" -- name of the destination (string)
  • "endtime" -- Unix timestamp for end of measurement (int)
  • "from" -- IP address of the probe as know by controller (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "Traceroute" (string)
  • "paris_id" -- variation for the Paris mode of traceroute (int)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "UDP", "ICMP", or "TCP" (string)
  • "destination_ip_responded" -- whether the last hop matches the destination address (boolean)
  • "result" -- list of hop elements (array of objects)
    objects have the following fields:
    • "hop" -- hop number (int)
    • "error" -- [optional] when an error occurs trying to send a packet. In that case there will not be a result structure. (string)
    • "result" -- variable content, depending on type of response (array of objects)
      objects have the following fields:
      • Case: Timeout
        • "x" -- "*" (string)
      • Case: Reply
        • "err" -- (optional) error ICMP: "N" (network unreachable,), "H" (destination unreachable), "A" (administratively prohibited), "P" (protocol unreachable), "p" (port unreachable) "h" (string) Unrecognized error codes are represented as integers
        • "from" -- IPv4 or IPv6 source address in reply (string)
        • "itos" -- (optional) type-of-service (IPv6 traffic class) in the packet that triggered the error ICMP. Omitted if zero and the TOS/Traffic Class field is not set in outgoing packets (int)
        • "ittl" -- (optional) time-to-live in the packet that triggered the error ICMP. Omitted if equal to 1 (int)
        • "edst" -- (optional) destination address in the packet that triggered the error ICMP if different from the target of the measurement (string)
        • "late" -- (optional) number of packets a reply is late, in this case rtt is not present (int)
        • "mtu" -- (optional) path MTU from a packet too big ICMP (int)
        • "rtt" -- round-trip-time of reply, not present when the response is late (float)
        • "size" -- size of reply (int)
        • "ttl" -- time-to-live in reply (int)
        • "flags" -- (optional) TCP flags in the reply packet, for TCP traceroute, concatenated, in the order 'F' (FIN), 'S' (SYN), 'R' (RST), 'P' (PSH), 'A' (ACK), 'U' (URG) (string)
        • "dstoptsize" -- (optional) size of destination options header (IPv6) (int)
        • "hbhoptsize" -- (optional) size of hop-by-hop options header (IPv6) (int)
        • "icmpext" -- [optional] information when icmp header is found in reply (object with the following fields:)
          • "version" -- RFC4884 version (int)
          • "rfc4884" -- "1" if length indication is present, "0" otherwise (int)
          • "obj" -- elements of the object (array of objects).
            objects have the following fields:
            • "class" -- RFC4884 class (int)
            • "type" -- RFC4884 type (int)
            • "mpls" -- [optional] MPLS data, RFC4950, shown when class is "1" and type is "1" (array of objects)
              objects have the following fields:
              • "exp" -- for experimental use (int)
              • "label" -- mpls label (int)
              • "s" -- bottom of stack (int)
              • "ttl" -- time to live value (int)
  • "size" -- packet size (int)
  • "src_addr" -- source address used by probe (string)
  • "timestamp" -- Unix timestamp for start of measurement (int)
  • "tos" -- (optional) type-of-service (IPv6 traffic class) in the reply packet. Omitted if zero and the TOS/Traffic Class field is not set in outgoing packets (int)
  • "ttr" -- time to resolve dst_name in milliseconds (float)
  • "type" -- "traceroute" (string)

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "dst_name": "2001:7fd::1",
  "endtime": 1503360225,
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 45,
  "msm_id": 6001,
  "msm_name": "Traceroute",
  "paris_id": 6,
  "prb_id": 9,
  "proto": "UDP",
  "result": [
    {
      "hop": 1,
      "result": [
        {
          "from": "2001:67c:2e8:ffe2::1",
          "rtt": 2.127,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:ffe2::1",
          "rtt": 1.821,
          "size": 88,
          "ttl": 64
        },
        {
          "from": "2001:67c:2e8:ffe2::1",
          "rtt": 1.796,
          "size": 88,
          "ttl": 64
        }
      ]
    },
    {
      "hop": 2,
      "result": [{ "x": "*" }, { "x": "*" }, { "x": "*" }]
    },
    {
      "hop": 3,
      "result": [
        {
          "from": "2001:67c:2e8:101::1:2",
          "rtt": 2.908,
          "size": 88,
          "ttl": 62
        },
        {
          "from": "2001:67c:2e8:101::1:2",
          "rtt": 2.417,
          "size": 88,
          "ttl": 62
        },
        {
          "from": "2001:67c:2e8:101::1:2",
          "rtt": 2.511,
          "size": 88,
          "ttl": 62
        }
      ]
    },
    {
      "hop": 4,
      "result": [
        {
          "from": "2001:7f8:1::a500:1257:1",
          "rtt": 2.706,
          "size": 88,
          "ttl": 61
        },
        {
          "from": "2001:7f8:1::a500:1257:1",
          "rtt": 2.623,
          "size": 88,
          "ttl": 61
        },
        {
          "from": "2001:7f8:1::a500:1257:1",
          "rtt": 2.93,
          "size": 88,
          "ttl": 61
        }
      ]
    },
    {
      "hop": 5,
      "result": [{ "x": "*" }, { "x": "*" }, { "x": "*" }]
    },
    {
      "hop": 6,
      "result": [
        {
          "from": "2a00:800:0:1::7a:2",
          "rtt": 10.2,
          "size": 88,
          "ttl": 59
        },
        {
          "from": "2a00:800:0:1::7a:2",
          "rtt": 10.174,
          "size": 88,
          "ttl": 59
        },
        {
          "from": "2a00:800:0:1::7a:2",
          "rtt": 10.161,
          "size": 88,
          "ttl": 59
        }
      ]
    },
    {
      "hop": 7,
      "result": [
        {
          "from": "2001:7f8:4::6240:1",
          "rtt": 10.785,
          "size": 88,
          "ttl": 60
        },
        {
          "from": "2001:7f8:4::6240:1",
          "rtt": 10.75,
          "size": 88,
          "ttl": 60
        },
        {
          "from": "2001:7f8:4::6240:1",
          "rtt": 29.901,
          "size": 88,
          "ttl": 60
        }
      ]
    },
    {
      "hop": 8,
      "result": [
        {
          "err": "A",
          "from": "2001:7fd::1",
          "rtt": 10.605,
          "size": 88,
          "ttl": 59
        },
        {
          "err": "A",
          "from": "2001:7fd::1",
          "rtt": 11.056,
          "size": 88,
          "ttl": 59
        },
        {
          "err": "A",
          "from": "2001:7fd::1",
          "rtt": 10.999,
          "size": 88,
          "ttl": 59
        }
      ]
    }
  ],
  "size": 40,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503360201,
  "type": "traceroute"
}

# Version 5000 DNS Lookup

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- [optional] IP version: "4" or "6" (int)
  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "dst_addr" -- [optional] IP address of the destination (string)
  • "dst_name" -- [optional] hostname of the destination (string)
  • "error" -- [optional] error message (object with the following fields:)
    • "timeout" -- query timeout (int)
    • "getaddrinfo" -- error message (string)
  • "from" -- [optional] IP address of the source (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "Tdig" (string)
  • "prb_id" -- source probe ID (int)
  • "proto" -- "TCP" or "UDP" (string)
  • "qbuf" -- [optional] query payload buffer which was sent to the server, base64 encoded (string)
    See example code for decoding the value
  • "result" -- [optional] response from the DNS server (object with the following fields:)
    • "ANCOUNT" -- answer count, RFC 1035 4.1.1 (int)
    • "ARCOUNT" -- additional record count, RFC 1035, 4.1.1 (int)
    • "ID" -- query ID, RFC 1035 4.1.1 (int)
    • "NSCOUNT" -- name server count (int)
    • "QDCOUNT" -- number of queries (int)
    • "abuf" -- answer payload buffer from the server, base64 encoded (string)
      See example code for decoding the value
    • "answers" -- first two records from the response decoded by the probe, if they are TXT or SOA; other RR can be decoded from "abuf" (array of objects)
      objects have the following fields:
      • "MNAME" -- domain name, RFC 1035, 3.1.13 (string)
      • "NAME" -- domain name. (string)
      • "RDATA" -- [type TXT] txt value (list of strings)
      • "RNAME" -- [if type SOA] mailbox, RFC 1035 3.3.13 (string)
      • "SERIAL" -- [type SOA] zone serial number, RFC 1035 3.3.13 (int)
      • "TTL" -- [type SOA] time to live, RFC 1035 4.1.3 (int)
      • "TYPE" -- RR "SOA" or "TXT" (string), RFC 1035
    • "rt" -- [optional] response time in milli seconds (float)
    • "size" -- [optional] response size (int)
    • "ttl" -- [optional] TTL (hop limit for IPv6) field from UDP reply packet (from 5010) (int)
  • resultset - [optional] an array of objects containing all the fields of a DNS result object, except for the fields: fw, from, msm_id, prb_id, and type. Available for queries sent to each local resolver.
  • "retry" -- [optional] retry count (int)
  • "src_addr" -- [optional] the source IP address added by the probe (string).
  • "subid" -- [optional] sequence number of this result within a group of results, available if the resolution is done by the probe's local resolver (int)
  • "submax" -- [optional] total number of results within a group (int)
  • "timestamp" -- start time, in Unix timestamp (int)
  • "type" -- "dns" (string)

Notes:

  • If a hostname was provided, both the hostname (dst_name) and the IP address (dst_addr) will be in the response.
  • If an IP address was provided, the name field will not be filled, unless the address which was given differs from the probe's resolution of the address. For instance, if "2001:0DB8:0:0::1" was provided, and the probe resolves it to "2001:0DB8::1", the first value will be returned as the name and the second as the address.
  • The dst_addr field will always be present, except when there is an error.

Example result:

{
  "af": 6,
  "dst_addr": "2001:7fd::1",
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 38,
  "msm_id": 11001,
  "msm_name": "Tdig",
  "prb_id": 9,
  "proto": "UDP",
  "result": {
    "ANCOUNT": 1,
    "ARCOUNT": 8,
    "ID": 20790,
    "NSCOUNT": 13,
    "QDCOUNT": 1,
    "abuf": "UTaEAAABAAEADQAIAAAGAAEAAAYAAQABUYAAQAFhDHJvb3Qtc2VydmVycwNuZXQABW5zdGxkDHZlcmlzaWduLWdycwNjb20AeDo7WQAABwgAAAOEAAk6gAABUYAAAAIAAQAH6QAAAsAcAAACAAEAB+kAAAQBYsAeAAACAAEAB+kAAAQBY8AeAAACAAEAB+kAAAQBZMAeAAACAAEAB+kAAAQBZcAeAAACAAEAB+kAAAQBZsAeAAACAAEAB+kAAAQBZ8AeAAACAAEAB+kAAAQBaMAeAAACAAEAB+kAAAQBacAeAAACAAEAB+kAAAQBasAeAAACAAEAB+kAAAQBa8AeAAACAAEAB+kAAAQBbMAeAAACAAEAB+kAAAQBbcAewBwAHAABAAfpAAAQIAEFA7o+AAAAAAAAAAIAMMB0ABwAAQAH6QAAECABBQACAAAAAAAAAAAAAAvAgwAcAAEAB+kAABAgAQUAAAIAAAAAAAAAAAAMwJIAHAABAAfpAAAQIAEFAAAtAAAAAAAAAAAADcChABwAAQAH6QAAECABBQAAqAAAAAAAAAAAAA7AsAAcAAEAB+kAABAgAQUAAC8AAAAAAAAAAAAPwL8AHAABAAfpAAAQIAEFAAASAAAAAAAAAAANDcDOABwAAQAH6QAAECABBQAAAQAAAAAAAAAAAFM=",
    "answers": [
      {
        "MNAME": "a.root-servers.net.",
        "NAME": ".",
        "RNAME": "nstld.verisign-grs.com.",
        "SERIAL": 2017082201,
        "TTL": 86400,
        "TYPE": "SOA"
      }
    ],
    "rt": 6.715,
    "size": 509
  },
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503447622,
  "type": "dns"
}

Example with resultset:

{
  "from": "193.0.0.78",
  "fw": 4790,
  "group_id": 1688543,
  "lts": 36,
  "msm_id": 1688543,
  "msm_name": "Tdig",
  "prb_id": 9,
  "resultset": [
    {
      "af": 4,
      "dst_addr": "193.0.19.102",
      "lts": 36,
      "proto": "UDP",
      "result": {
        "ANCOUNT": 1,
        "ARCOUNT": 0,
        "ID": 12040,
        "NSCOUNT": 0,
        "QDCOUNT": 1,
        "abuf": "LwiBgAABAAEAAAAAA3d3dwRyaXBlA25ldAAAAQABwAwAAQABAAASCAAEwQAGiw==",
        "rt": 6.828,
        "size": 46
      },
      "src_addr": "10.2.0.10",
      "subid": 1,
      "submax": 2,
      "time": 1503447741
    },
    {
      "af": 4,
      "dst_addr": "193.0.19.101",
      "lts": 37,
      "proto": "UDP",
      "result": {
        "ANCOUNT": 1,
        "ARCOUNT": 0,
        "ID": 29001,
        "NSCOUNT": 0,
        "QDCOUNT": 1,
        "abuf": "cUmBgAABAAEAAAAAA3d3dwRyaXBlA25ldAAAAQABwAwAAQABAAAobwAEwQAGiw==",
        "rt": 6.765,
        "size": 46
      },
      "src_addr": "10.2.0.10",
      "subid": 2,
      "submax": 2,
      "time": 1503447742
    }
  ],
  "timestamp": 1503447741,
  "type": "dns"
}

# Version 5000 HTTP

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)
  • "from" -- IP address of the probe as known by controller (string)
  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)
  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)
  • "msm_id" -- measurement identifier (int)
  • "msm_name" -- measurement type "HTTPGet" (string)
  • "prb_id" -- source probe ID (int)
  • "result" -- results of query (array of objects)
    objects have the following fields:
    • "af" -- address family, 4 or 6 (integer)
    • "bsize" -- size of body in octets (int)
    • "dnserr" -- [optional] DNS resolution failed (string)
    • "dst_addr" -- target address (string)
    • "err" -- [optional] other failure (string)
    • "header" -- [optional] elements are strings. The last string can be empty to indicate the end of enders or end with "[...]" to indicate truncation (array of strings)
    • "hsize" -- header size in octets (int)
    • "method" -- "GET", "HEAD", or "POST" (string)
    • "readtiming" -- [optional] timing results for reply data (array of objects)
      objects have the following fields:
      • "o" -- offset in stream of reply data (int)
      • "t" -- time since starting to connect when data is received (in milli seconds) (float)
    • "res" -- HTTP result code (int)
    • "rt" -- time to execute request excluding DNS (float)
    • "src_addr" -- source address used by probe (string)
    • "subid" -- [optional] sequence number of this result within a group of results, when the 'all' option is used without the 'combine' option (int)
    • "submax" -- [optional] total number of results within a group (int)
    • "time" -- [optional] Unix timestamp, when the 'all' option is used with the 'combine' option (int)
    • "ttc" -- [optional] time to connect to the target (in milli seconds) (float)
    • "ttfb" -- [optional] time to first response byte received by measurent code after starting to connect (in milli seconds) (float)
    • "ttr" -- [optional] time to resolve the DNS name (in milli seconds) (float)
    • "ver" -- major, minor version of http server (string)
  • "timestamp" -- Unix timestamp (int)
  • "type" -- "http" (string)
  • "uri" -- request uri (string)

Example result:

{
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "group_id": 9250352,
  "lts": 112,
  "msm_id": 9250352,
  "msm_name": "HTTPGet",
  "prb_id": 9,
  "result": [
    {
      "af": 6,
      "bsize": 1134,
      "dst_addr": "2001:67c:2e8:11::c100:136b",
      "header": [
        "Server: nginx/1.10.2",
        "Date: Wed,23 Aug 2017 11:46:55 GMT",
        "Content-Type: text/html",
        "Transfer-Encoding: chunked",
        "Connection: close",
        ""
      ],
      "hsize": 131,
      "method": "GET",
      "readtiming": [
        {
          "o": 0,
          "t": 32.455686
        }
      ],
      "res": 200,
      "rt": 36.556807,
      "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
      "ttc": 26.076677,
      "ttfb": 32.31591,
      "ttr": 0.430849,
      "ver": "1.1"
    }
  ],
  "timestamp": 1503488816,
  "type": "http",
  "uri": "http://nl-ams-as3333.anchors.atlas.ripe.net:80/1024"
}

# Version 5000 NTP

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)

  • "dst_name" -- name of the destination (string)

  • "dst_port" -- port name (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)

  • "li" -- leap indicator, values "no", "61", "59", or "unknown" (string)

  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)

  • "mode" -- "server" (string)

  • "msm_id" -- measurement identifier (int)

  • "msm_name" -- measurement type "Ntp" (string)

  • "poll" -- poll interval in seconds (float)

  • "prb_id" -- source probe ID (int)

  • "precision" -- precision of the server's clock in seconds (float)

  • "proto" -- "UDP" (string)

  • "ref-id" -- server's reference clock (string)

  • "ref-ts" -- server's reference timestamp in NTP seconds (float)

  • "result" -- results of query (array of objects)
    objects have the following fields:

    • "final-ts" -- NTP time the response from the server is received (float)

    • "offset" -- clock offset between client and server in seconds (float)

    • "origin-ts" -- NTP time the request was sent (float)

    • "receive-ts" -- NTP time the server received the request (float)

    • "rtt" -- round trip time between client and server in seconds (float)

    • "transmit-ts" -- NTP time the server sent the response (float)

  • "root-delay" -- round-trip delay from server to stratum 0 time source in seconds (float)

  • "root-dispersion" -- total dispersion to stratum 0 time source in seconds (float)

  • "src_addr" -- source address used by probe (string)

  • "stratum" -- distance in hops from server to primary time source (int)

  • "timestamp" -- Unix timestamp (int)

  • "ttr" -- time to resolve dst_name in milliseconds (float)

  • "type" -- "ntp" (string)

  • "version" -- NTP protocol version (int)

Example result:

{
  "af": 6,
  "dst_addr": "2001:bc8:24c7:300::123",
  "dst_name": "2.pool.ntp.org",
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "group_id": 2048609,
  "li": "no",
  "lts": 47,
  "mode": "server",
  "msm_id": 2048609,
  "msm_name": "Ntp",
  "poll": 8,
  "prb_id": 9,
  "precision": 1.192e-7,
  "proto": "UDP",
  "ref-id": "c14fed0e",
  "ref-ts": 3712434647.7366428375,
  "result": [
    {
      "final-ts": 3712436069.4462752342,
      "offset": -0.809977,
      "origin-ts": 3712436069.4429988861,
      "receive-ts": 3712436070.2545785904,
      "rtt": 0.003206,
      "transmit-ts": 3712436070.2546486855
    },
    {
      "final-ts": 3712436069.4519329071,
      "offset": -0.809862,
      "origin-ts": 3712436069.4494876862,
      "receive-ts": 3712436070.2605471611,
      "rtt": 0.002394,
      "transmit-ts": 3712436070.2605981827
    },
    {
      "final-ts": 3712436069.4576249123,
      "offset": -0.809849,
      "origin-ts": 3712436069.4552330971,
      "receive-ts": 3712436070.2662582397,
      "rtt": 0.002352,
      "transmit-ts": 3712436070.2662987709
    }
  ],
  "root-delay": 0.00871277,
  "root-dispersion": 0.0375824,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "stratum": 2,
  "timestamp": 1503447269,
  "type": "ntp",
  "version": 4
}

# Version 5000 TLS (SSL) GET Cert

View changes since previous version.

A measurement result is a JSON object with the following fields:

  • "af" -- address family, 4 or 6 (integer)

  • "alert" -- [optional] error sent by server (see RFC 5246, Section 7.2), object with the following fields:

    • "level" -- AlertLevel (integer)

    • "description" -- AlertDescription (integer)

  • "bundle" -- [optional] instance ID for a collection of related measurement results (int)

  • "cert" -- [optional] results of query, not present if "alert" is present (array of strings)
    Each element of the array is a string containing a base 64 encoded certificate. Newlines are replaced with "\n"

  • "dst_addr" -- IP address of the destination (string)

  • "dst_name" -- name of the destination (string)

  • "dst_port" -- port name (string)

  • "from" -- IP address of the probe as known by controller (string)

  • "group_id" -- [optional] If the measurement belongs to a group of measurements, the identifier of the group (int)

  • "lts" -- last time synchronised. How long ago (in seconds) the clock of the probe was found to be in sync with that of a controller. The value -1 is used to indicate that the probe does not know whether it is in sync (int)

  • "method" -- "SSL" or "TLS" (string)

  • "msm_id" -- measurement identifier (int)

  • "msm_name" -- measurement type "SSLCert" (string)

  • "prb_id" -- source probe ID (int)

  • "rt" -- [optional] response time in milli seconds from starting to connect to receving the certificates (float)

  • "server_cipher" -- [optional] cipher selected by server as a hexadecimal number (string)

  • "src_addr" -- source address used by probe (string)

  • "ttc" -- [optional] time in milli seconds that it took to connect (over TCP) to the target (float)

  • "timestamp" -- Unix timestamp (int)

  • "ttr" -- time to resolve dst_name in milliseconds (float)

  • "type" -- "sslcert" (string)

  • "ver" -- (SSL/TLS) protocol version (string)

Example result:

{
  "af": 6,
  "cert": [
    "-----BEGIN CERTIFICATE-----\\nMIIGMjCCBRqgAwIBAgIQD8TjNXAZtd7GHX4fwUPe9jANBgkqhkiG9w0BAQsFADBw\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNz\\ndXJhbmNlIFNlcnZlciBDQTAeFw0xNzA3MjUwMDAwMDBaFw0xODEwMTIxMjAwMDBa\\nMEkxCzAJBgNVBAYTAk5MMRIwEAYDVQQHEwlBbXN0ZXJkYW0xETAPBgNVBAoTCFJJ\\nUEUgTkNDMRMwEQYDVQQDDAoqLnJpcGUubmV0MIICIjANBgkqhkiG9w0BAQEFAAOC\\nAg8AMIICCgKCAgEArtORS6Luc+bU1dBK2pR4axFhzhlG48QBgO149UzSpRiPQh3s\\nSH+6GoQQafmYjRYlkmybN92sOed/wfaWq8/vvxFmZ/K5yyOhnDs46z079AXAqnY4\\ne1dgALbIM4ITskoT0zo/+OZTCZsKfSn7az0S04DU/OWictRI4ilUPAONX02aksB7\\nJddzAvK07V15YQ2HrtG48tJ/DbKWuTqWmkuPuSx3QBECyxWuHsdxwEaWlVgXZk3H\\n3hbOswszBnNIywPqGQdQ4ApPi0gXnWaSudzP92Al1RElHxGnuYfcFHSTQXC54JT7\\nkbjQjI9Vj0Qa4z/IYBNH57iUHqwOpEftYr5m4SOea400ghnHxL0J87LHBwpTMbqk\\nNK3h9KM1jf4URBlveeMydStdeHz9KVUFOnRx0M2eYwi6HAchnRQkNcobMbhNuZhh\\n+Qp+G+O8T0JY1ciEPf+UNS3EEDNl+NAe57sJl+CU3u0lYhRUAZQJpYP6ExpjW9Qa\\nFUkPRqGx4VMaBWzB6cAVhENmt5d/ZSglmUK0SwW67hpyUN0GJd81Ed7vXwU2reLL\\n7f+ix1pMbHlEmC338sv5j+9JZz7MvAW0E/axZwQY1YSqxQzEoyE8wCCHH6PKV/z2\\n2v9JPc2PJBWjvGtPNUDYS4paDszCeHmyhIoquDDgrU1EUV8877fv8ZgZAGMCAwEA\\nAaOCAe0wggHpMB8GA1UdIwQYMBaAFFFo/5CvAgd1PMzZZWRiohK4WXI7MB0GA1Ud\\nDgQWBBRgjLhcTWaOUAtxhZZ1Hkl4x7SibzAfBgNVHREEGDAWggoqLnJpcGUubmV0\\ngghyaXBlLm5ldDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG\\nCCsGAQUFBwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0\\nLmNvbS9zaGEyLWhhLXNlcnZlci1nMS5jcmwwNKAyoDCGLmh0dHA6Ly9jcmw0LmRp\\nZ2ljZXJ0LmNvbS9zaGEyLWhhLXNlcnZlci1nMS5jcmwwTAYDVR0gBEUwQzA3Bglg\\nhkgBhv1sAQEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29t\\nL0NQUzAIBgZngQwBAgIwgYMGCCsGAQUFBwEBBHcwdTAkBggrBgEFBQcwAYYYaHR0\\ncDovL29jc3AuZGlnaWNlcnQuY29tME0GCCsGAQUFBzAChkFodHRwOi8vY2FjZXJ0\\ncy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEySGlnaEFzc3VyYW5jZVNlcnZlckNB\\nLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBhGz3DS/C/7Yim\\nwhSQobJvqt2Wrr5oVk5pM1i7vh+Lr/ecaEg3qRL/TlXqA7OIgCzuQnYNBBNaS/Px\\nXWOrQJt2c0zEAdJlvBa/OZzntbaB3DlsI/HdN9k7J2yyiKpzlKoktxbWGZ+p62/G\\n0F4VdOzQoI+2A9NbyvW5RzMx1c6BuIDJGJHDRvnSqry5+1E9cJtoAfTQexLwJu6x\\nlNMuJO+u/Lrz4DTwKvAyX+j3W810L8QISvNiyUJuG5JgXW6vCkL+TOhKHEJqFwVJ\\n4FNef/bewoBHy8AasJmIziRhs/jmgchlykX2R+Mktj7AkBr5Gj2Oy7xTg+LeTWjW\\nstR8lihH\\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\\nMIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\\nd3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\\nZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL\\nMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\\nLmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy\\nYW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2\\n4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC\\nKq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1\\nitrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn\\n4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X\\nsh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft\\nbZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA\\nMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\\nNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy\\ndC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t\\nL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG\\nBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ\\nUzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D\\naQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd\\naOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH\\nE+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly\\n/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu\\nxICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF\\n0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae\\ncPUeybQ=\\n-----END CERTIFICATE-----"
  ],
  "dst_addr": "2001:67c:2e8:22::c100:68b",
  "dst_name": "www.ripe.net",
  "dst_port": "443",
  "from": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "fw": 4790,
  "lts": 58,
  "method": "TLS",
  "msm_id": 15001,
  "msm_name": "SSLCert",
  "prb_id": 9,
  "rt": 22.177541,
  "src_addr": "2001:67c:2e8:ffe2:220:4aff:fec6:cc9d",
  "timestamp": 1503448834,
  "ttc": 4.284673,
  "type": "sslcert",
  "ver": "1.2"
}
Last Updated: Friday 31 May 2024