When I was younger and had just learned to use nmap, it was a hobby of mine to scan the internet and browse random web servers. At the time, I used very aggressive scans( nmap -A -iR 500 –top-ports 30 –open ) and found some incredibly interesting servers(It is amazing how many computers on the internet are blatantly compromised). When I first started doing it, it was a completely manual process: I would start the scan, scroll through pages of IP addresses and port information, and manually copy and paste interesting IPs and ports into Firefox. Eventually I automated the process using a shell script and some python that scanned and filtered IP addresses, noted interesting ports, and automatically opened a browser to the IP.
Between a couple dozen OS installs, this script was lost. To remake this experience, I made randomsite.lhackworth.com. It’s some spaghetti code slapped together using nmap, Django, uwsgi, and Nginx that does something similar to what I used to do, albeit less noisily. It scans IPV4 addresses for an open port 80 and sticks seemingly good IP addresses into a database. Then when you go to randomsite.hackworth.com/go/, it redirects you to a random IPV4 web server.
It does not aggressively scan like the old scripts did, it only scans for servers at port 80. Unfortunately, since port 80 is the correct port for web servers, many of these sites are much less interesting than the sorts of things I found back in the day. At the request of a few users on Hacker News, I implemented a filter to prune out sites with certain errors like 400, 404, 500, and others, which greatly improved the signal-to-noise ratio of the redirects. It was fun to cobble together. This site is now unmaintained, and the site pruning software has now been disabled. If you want specifics on how I did it, email me at email@example.com.