==== What's it all about? ====
I'm worried that Europe is fast becoming as badly governed as the US is. Further, I'm worried that our privacy and freedom is being erroded, often in the name of anti-terrorism, or more generally 'safety' and 'security'.
==== In Particular ====
In particular I'm worried about European legislation to force Internet Service Providers (ISPs) to log all web activity of their customers. Further, they have to store this information for between 6 and 24 months.
This sort of mandate also encourages Internet cafes and the like to know who their users are (otherwise, why bother knowing that cafe X visited dubious website Y?). This is clearly an incredible invasion of one's privacy, but also so utterly flawed as to be useless (no self-respecting terrorist or criminal will ever use real ID for such things).
To that end, I thought I'd do my bit to thwart proceedings. I wrote a simple Perl program to make continuous web requests. It does so 'gently' so that it doesn't load the system it's running on, and doesn't use up too much bandwidth. The 'random' nature of what it does means that web sites should barely notice the effect of it either.
Being a great programmer as I am, the script is configured by editing the code. It's very simple though, and for the most part doesn't really need changing. It's all commented, so it should be fairly self-explanatory if you fancy having a go at it.
From the comments:
^This script is designed to run permanently on a system. It makes periodic web requests to 'random' web sites that it finds by making 'random' searches on internet search engines.
The intention of this script is to make numerous web requests. Each web request is logged by many
In order to limit the effect on the system it is running on, the script sleeps for a variable amount of time between requests. It can also stop downloading files when they reach a certain size, so as to
avoid using too much of the available bandwidth. In practice, the script does not have a discernable effect on system load or on a 512K
The script uses a series of words, from which it selects a few and makes a search engine request with them. The results it gets are 'scraped' from the response and added to a list. The list is then fetched, one by one with a pause between each. Once the list is emptied, another random search
takes place to fill the list once more. To avoid endlessly visiting search engine pages (such as caches or advertising) the script can avoid certain
To make this script more useful, it also uses a series of User-Agent strings when it makes requests. This means that the traffic from the script is less easy to filter from ordinary logs (although if you only ever use one browser yourself, you may wish to trim the list of User Agents so that it's impossible to tell what you downloaded and what the script downloaded!).