hi dude,
Concerning, point 1, have a look at this page, they are sorted by ascending price:
http://www.thomann.de/gb/cat.html?gf=po … amp;oa=pra
concerning point 2, eh, eh...
but I'd need some precisions. What do you mean by "view the contents of a computer" in practice?
- if the idea is to take control over the machine (accessing both your data and your applications, running things, etc...), the best solutions are things like UltraVNC, TeamViewer, ... (though it requires some setup at the dsl box level and that you got the client side application installed on the station you use to take control over your house computer), and the server side application running on the house computer.
- if the idea is rather to access some "shared directory" contening files, that you could access from anywhere in the world, while having some levels of sharing available (like: private / accessible for friends / fully public), I would say the easiest tool is DropBox. It's actually a "Cloud-based" application, and you'll be able to access the files from anywhere in the world with a simple browser, and even if your house computer is off, or simply offline. In fact, the files are stored on a certain directory on your hard-drive, that you choose on installation, and all sub-directories and files in it are permanently synchronised with a 1 or 2 GB space they give you with the free version. Moreover, you can install DropBox on several computers (under the same account) and have the files permanently synchronised between all the computers connected to the net. For the files you choose to be public or want to share with friends only (they need to have a dropbox account for that), it gives you some web URL (like when you share a youtube vid or else), and people can download the file through that URL with a simple web browser (but cannot explore the directory where they are put, as it could be the case with a typical web server on your house computer).
So, of course, ... what about your files on their servers, huh? Well, technically they are strongly insisting on the fact that you keep all rights over the files, that files are transparently encrypted/decrypted on the fly, making it impossible even for DropBox employees to access the content of the files (understating, with sufficiently powerful computers to crack the crypting keys in a short enough time for the process to pay for itself). Besides, it requires "yet another account and password" (but only when you want to access the web area, cause the sync process is completely transparent), so all in all, it's worth the hassle, considering the friendlyness of that tool.
Of course, one could program something similar, and if you don't technically need a web server (like IIS or Wamp), at some point you're going to need "something" on your house computer "waiting" for external requests, technically speaking, listening on a given TCP port for requests arriving from outside your home network. So, it implies, whatever the port you choose (even for the HTTP port '80'), that you make a rule on the DSL router administration interface to indicate that requests arriving on your public IP address and on the HTTP port should be routed to your internal computer (its internal IP address) on that same port. But here, you stumble on the typical problem for personal ISP's access: the public IP address they give you changes regularly over time. That means, your router should be compatible with some dynamic DNS service like 'dyndns.org', you choose some domain name, under the dyndns.org domain name, e.g.: ramonsky.dyndns.org, and then you can access your home computer through a "stable" URL, cause dyndns handles automatically the modifications of your public IP address and keeps it associated with the full name you chose.
The trick DropBox uses is that as your files are on one of their web servers, each of your computers with DropBox installed on it, and connected to the net, is constantly looking for modifications by sending outgoing requests to the central storage area; if your files are not available somewhere on the public network, the request has to be "ingoing" (from the point of view of the computer on which they are), and it changes everything
Hope that helps ;)
Scalino