Traceroute Text Generator

Traceroute Text Generator is a small C program that generates "traceroute stories", or arbitrary texts in traceroutes. It is IPv6-only by design.

Source code freely available here. This daemon only creates the router hops; reverse DNS setup is done separately using any reverse DNS server.

The "rhgen-data.bin" file is technically not a binary blob as it is normally edited using a hex editor.

Live demos

World IPv6 launch logo.svg No-ipv4.svg The services described here are IPv6-only, without any IPv4 addressing. If you have trouble viewing these pages, then you do not have IPv6 connectivity. Unless you know you should have IPv6 connectivity, this is usually not due to an issue with the firewall or web filter (if present in your network). If you have a cell phone, you may need to turn off your Wi-Fi or VPN and use cellular data instead.
Excellent! Your ISP appears to support IPv6! You shouldn't have any problem viewing these webpages.
Checking your internet connection for IPv6 support. If this text does not change, then it looks like your ISP does not support IPv6. Please disable or enable any proxies or VPNs, switch to mobile data, or simply just find another ISP.
IP address Domain name Suggested max hop count Contents
2602:806:a003:40f::3:1f 64 SCP-PJIN-003
2602:806:a003:40f::103:1 - 30 The reverse DNS for this address is '<script>alert("XSS")</script>', which is intended to test looking glass and reverse DNS lookup websites for XSS vulnerabilities. Unlike all the other ones here, this one has only one router hop.

To remember the "" part, think of it as "t"raceroute [.] "rDNS" [reverse DNS] [.] "". The names are rather long like that, just to show that in IPv6, you can create a deep hierarchy of IPv6 addresses.

We added RPKI/ROAs and IRR objects on the 2602:806:a003::/48 prefix and even DNSSEC signed the reverse DNS zones, so you'll be almost guaranteed to see the correct text! :)

These domain names and IP addresses have now been integrated into IPv6 Things. See the bottom half of List of IPv6 Things subdomains (spoiler warning!).


  • tracert -h 64 -w 1 2602:806:a003:40f::3:1f (Windows)
  • traceroute -m 64 -w 1 2602:806:a003:40f::3:1f (Linux)

If the traceroute happens to seemingly die out, wait a few more hops; there is no firewall that is blocking your requests. The Cogentco routers are notorious for not reliably sending hop limit expired messages. This means that if you are using "Paris traceroute", then you need to add a flag like -M 20.

UPDATE: Hosting provider has changed upstream transit, so the problem of stars in the middle of the traceroute should no longer be an issue.

Alternatively, if you don't have IPv6, you can view any of the traceroutes using an online looking glass:

Select IPv6 "Trace" or "Traceroute", then enter any of the above IP addresses to view the contents of the traceroute. It is best to choose a location closest to Los Angeles or Seattle.

If viewing the traceroute in an online looking glass and the traceroute stops at a certain point, you may add in an augmented starting point in the second-to-last byte. For example, if the traceroute to 2602:806:a003:40f::3:1f ends at 2602:806:a003:40f::3:10, then you can do another traceroute to 2602:806:a003:40f::3:101f.

How it works

Traceroute Text Generator (formerly Magic Traceroute and Router Hop Generator) works by computing the necessary "ICMP Hop Limit expired" messages virtually based on the current hop limit and parameters given by the destination IP address. For example, if the daemon sees a hop limit of 1, then it will reply with the first address. If the daemon sees a hop limit of 2, then it will reply with the second address, and so on. This is performed in O(1) time for every packet received.

The format of the IP address is as follows:

  • XXXX specifies the fixed /96 prefix.
  • YYYY is ignored, but is echoed when the ICMP Hop Limit Expired messages are sent back. This allows for a total of 65,536 traceroutes.
  • ZZ augments the initial hop limit in case the maximum number of hops is fixed, such as when viewing from an online looking glass. In the reply messages, ZZ is always 0 (for real addresses) or 0xff (for virtually-mapped addresses).
  • TT specifies the maximum hop count. If the received Hop Limit is equal to or greater than TT, an ICMP Net unreachable is sent, ending the traceroute.

Traceroute Text Generator only performs the traceroute addressing structure. Reverse DNS can be performed as usual for any addresses, subject to availability at the hosting provider. That means that to add a new traceroute, the only thing that needs to be done is adding in new reverse DNS entries. In fact, the Router Hop Generator daemon is not aware of DNS at all.

This is all possible because a computer network can be simulated by a Turing machine, as a function of the packets that enter and exit the network, and Traceroute Text Generator is just a massive computational trivialization of a multihop computer network.

The reason why there is "" in all of the PTRs is because of the possibility that if it weren't present, then the PTRs could coincide with an unrelated, existing domain.


2602:806:a003:40e::/64 IPv6 Things (IPv6 Bible)
2602:806:a003:40f::/64 Traceroute Text Generator - Traceroute Maker
2602:806:a003:4ff::/64 GitLab