You can take a look at the git repo here: gitlab.com/nickfreeman/sixspotting
SixSpotting is a website which gamifies the IPv6 adoption. This repo contains a script which iterates through all exit-nodes of the Tor Project and for each tries to connect to the check-in page of SixSpotting.
- Create an account or login on SixSpotting
- Get the cookie
session_idfrom the browser console (F12)
- Make sure Tor is installed
./torbulkexitlist.sh [session_id]with your
- You can run
tail -f tmp/log.txtto read the log of Tor
What exactly is happening here?
The configuration file of Tor is called
torrc. First we set the
CookieAuthFile to a local folder, so we can start tor without any privileges. Next we start Tor in the background, get the pid and wait for 3 seconds.
To get a list of all Tor exit-nodes, we execute
LINES=$(wget -qO- https://check.torproject.org/torbulkexitlist). This gives us the list of all Tor nodes which looks something like that:
126.96.36.199 188.8.131.52 184.108.40.206 220.127.116.11 18.104.22.168 ...
Now we can iterate over these. For each
LINE in $LINES we set the allowed exit-nodes to be just the current
LINE by restoring torrc, adding
ExitNodes $LINE and then reloading Tor.
Now we can make a http-request to
https://game.flyingpenguintech.org/checkin via Tor using curl.
To do that we set the proxy to be
socks5://localhost:9050. To force Tor to use a new connection every time, we use a new password by adding
-U new:$(openssl rand -hex 10).
Sadly IPv6 is still somehow broken somewhere (at least it just didn’t work for me), so we need to tell curl the address to connect to by adding
$ipv6 has been set to be the IPv6-address of
game.flyingpenguintech.org at the beginning of the script using
ipv6=$(dig game.flyingpenguintech.org AAAA +short || echo "2600:3c03:e001:600::1").
Last but not least we set the session_id cookie by adding