und aus dem Chaos kam eine Stimme, und die Stimme sprach zu mir
"Lächle und sei fröhlich, denn es könnte schlimmer kommen."
und ich lächelte und war fröhlich
und es kam schlimmer.

Oh my goodness. I am feeling old.

I can remember how I looked at Windows 3.1 in those days when Windows 95 and Windows 98 came out. The last standalone DOS-Version 6.2 came out 1993 if I remember correctly.

I always liked old software, somehow. I didnt simply use Windows 98, because I wanted to use some DOS-Software not running on 7.x-Versions of DOS, so I installed DOS 6.2 first, then Windows 98 over it, and ran it as sort of Dual Boot System - on which I also installed GEOS 2.0 and Windows 3.1. People were laughing at me using ten years old software.

And now? This shiny new Software called Windows 98 is ten years old. Though, people are still using it. Maybe thats because there hasnt been any really better Version of Windows since then. Windows ME ("Millennium Edition") is a version many people also still use, because - well, its a slightly modified Windows 98 with a lot of small things made better. And I think, Windows XP will also be. The only reason why nobody uses older Windows-Versions than 98 is that Windows 95 simply didnt work properly, and anything older belongs to the Win16-Series. And thus, I think Windows 98 will disappear, with the upcoming 64 bit versions, and will be replaced by Windows XP as the "last good windows".

Back to topic, while talking to a friend about internet-technologies, I just remembered how "private web hosting" worked in those days before the "modern social media", when affordable Home-Internet really was something new (and not only made something new by advertisements and politicians). Back then I got my first Modem for a dial up connection to the internet, a friend of mine had an ISDN-Flatrate and we wanted to host a small website (with homework-related stuff and the "software" we produced back then). Both of us didnt really know much about it, I knew QuickBasic by rote and learned HTML, JavaScript and PHP at that time, and I had 5 megabytes of php-enabled webspace at a small provider, which costed a payment of 1 DM once, which could be payed by a phonecall (I still do have it, and I am still hosting stuff on it).

He had a working FoxServ, but no static IP. DynDNS wasnt there or at least we didnt know it yet, same for .de.vu-domains. The plan therefore was to use my PHP-Webspace (which had a static Hostname) and provide a PHP-Site redirecting to my friend's IP.

But to be able to redirect somewhere, I - of course - would have to know the IP-Adress first. In those days, you had one computer on the internet, so the computer knew its public IP-Adress, and it could be found via the ipconfig-command under Windows 98 - besides a lot of other numbers and stuff.

So the first challenge was to get the output of ipconfig saved somewhere. Fortunately, like in Linux, also under Windows 98 you could use ipconfig > somefile.txt - but of course, you had to know this, before you could use it. With QuickBasic being the only programming language I really knew well, I created a program calling this command. QuickBasic had a procedure named SHELL (if I remember correctly), which was sort of an execve(2)-equivalent, and could be used to start windows programs from QuickBasic. So I called ipconfig and redirected its output into a file. Then came the harder part: Parsing. I had to parse the output of ipconfig to find the actual IP-Adress. I didnt have any clue of netmasks, nameservers, etc. - for me these were just "a lot of other shit" which I had to somehow remove (especially, the orders in which the several numbers were given were not always the same, I dont know why - but I remember this being a major problem).

Having the IP-Adress, now I needed a possibility to send it to the server. On the server-side, this was just realized by a PHP-Script accepting an IP-Adress as an argument (of course the internet wasnt quite as bad as it is today and so we didnt really think of anybody willing to spoof our homemade "dynamic dns" service) and writing it to some other file.

But what on the client-side? We had nothing like wget, and QuickBasic hat no simple way of creating TCP-Connections (since DOS didnt even have a TCP-Stack by default iirc). At first, I called iexplore.exe with the proper URL. Every time the IP changed. Scripts could not close a root-browser-window. I told my friend that I have no clue what to do about it, and he said its ok to have it running like that for a while - well, until this made his computer crash during some struggle with his connection, when his IP changed very often and he had about 200 opened instances of the Internet Explorer.

For some reason I decided to use netscape.exe instead of the Internet Explorer then, I think to prevent it from crashing (my friend used IE for Webbrowsing, and IE sometimes crashed, including all its instances). And the solution was a little more complicated: One running, minimized instance of netscape, having a JavaScript page which was on the local hard-drive and used a setTimeout-Interval to auto-refresh itself. This JS-Page was written by my program, and contained the IP (accessible for the JS-Parts). Somehow I managed to save the old IP in the browser memory (maybe by a hidden-object or so) even through refreshes, so whenever the script noticed the IP changing, inside an IFrame it opened my PHP-Script on the server with this IP-Adress as an argument.

Just to give you an overview of how the whole thing worked, I put together a little scheme:
diagram
In fact, it looks hilarious, but it worked well quite a long time. And to be honest, except for the one security issue that the IP-Transmissions are not secured in any way (which can easily be achieved by simply using SSL and some password), it is complicated but not that bad at all.

Its a few pupils' way of using what they had, and making the best they could of it. The spirit of hacking. And it worked. And except for a Location-Header, the whole complexity was hidden from the actual user.

Compare this to some modern, commercial Websites which have a lot of money, so could - in theory - buy anything they need, but still cannot manage to create a Webinterface without JS, Cookies, Redirects, Referrer-Headers, ..., and cannot manage to make it work well even with all these technologies.

Well, with upcoming services like DynDNS and .de.vu-Domains, these kinds of hacks became useless and we switched to the new services, with the predecessors of RapidShare (however they were called) the motivation of having an own server at a crappy upload rate which slowed down the own download rate became smaller. It is a lot easier now to publish stuff on the Internet.

But this simplicity is at the cost of the average intellectuality. If still 8th grade scriptkiddies were the most stupid people on the Internet, we wouldnt have a lot of modern problems.