views:

48

answers:

2

Hi, this is my situation:

I need to create an app that listens to URL's entered on a browser so that when a particular site is entered (e.g. google.com), it redirects this to www.mysite.com/Redirect.aspx?site=google.com, so that this click is recorded on mysite.com and then the user is redirected to the original entry i.e. google.com

One idea I had was to create an app on Windows that edits the Hosts file. So what I did was, added an entry for google.com, redirecting it 1.2.3.4 (IP of my server), so that the click can be recorded there and the user can be redirected back to google.com

However the problem with this is that, since Hosts redirects any request for google.com to 1.2.3.4, this whole redirect sequence would be going round in a loop since 1.2.3.4 would lead it to google.com as well.

Could anyone please suggest what I could do to get around this or a better solution?

What I want is similar to parental control software i.e. when a certain website is visited, e.g. www.porn.com, it recognises this address and leads the user to a different site.

The sequence of actions would be :

User enters google.com -> Redirect to mysite.com?Redirect.aspx?site=google.com (record entry on my server) -> go to google.com

Please help!

A: 

You can be a proxy (http or socks). This way you will see all requests to all sites and have an option of tracking particular ones. At the same time, user will never notice any redirects in his browser

ULysses
How could I do this in C#?
Glory
i would suggest that you search for either expendable (accepting plugins) proxy implementation or open source proxy project, and then either write your plugin or modify the source code to your needs. If you choose the opensource proxy implementation you may have a chance to find it in C#. Also, you may choose to implement your own http proxy, in that case you will have to study topic http://en.wikipedia.org/wiki/Proxy_server
ULysses
+1  A: 

What I reckon you want to do is set up a proxy and force all web traffic to go through it. Depending on your situation (whether you need to ensure people use it or if its opt in for whatever reason). Then in your proxy you do the listening and then do your magic redirecting. Depending on what mysite.com does (does it just redirect or will it return the google page?) you may want to either keep state (remember that you just did this redirect so you don't get stuck in a loop) or just fire off a separate request to mysite.com while proxying google.com. This should log the request still while forwarding on your request as desired.

The scope of creating a proxy is a bit big for this question so I'll leave you to go research that yourself.

Chris