Search code examples
windowsprotocolsnetwork-protocolssystem-monitoring

Are there any ways to monitor all HTTP protocols and block certain ones using a single script on WIndows?


I want to write a program that can monitor all system HTTP/HTTPS protocols used to open the default browser, and block certain ones, automatically changing certain requested URL into another. The process of changing a URL is simple, but the monitoring and blocking part is quite puzzling.

e.g. When clicking on the URL 'https://example.com/asdf.htm', the request will be blocked by the program and the the Windows system will receive the command of 'http://www.example2.org/asdf.htm' instead and the latter instead of the former URL will be opened by the default browser.

I am an amateur developer and student who do not have much experience in solving such problems.

I searched the web and found someone asked a similar question years ago:

https://superuser.com/questions/554668/block-specific-http-request-from-windows

However, I didn't find any useful advice on coding in the page. Maybe I can use an antivirus program to block certain URLs or change the hosts file to block certain URLs but the URL replacement cannot be done. Certainly, changing the hosts to a certain server which redirects certain requests might work but that's too complex. I wish someone can help me solve the problem by giving a simple method on monitoring the Windows system itself. Thanks!


Solution

  • To summarize our conversation in the comments, in order to redirect or restrict traffic, either to sites, either to ports (protocols are actually "mapped" via ports) the main solutions usually are:

    1. a software firewall - keep in mind that SWFW don't usually redirect, they just permit or allow traffic via ports

    2. a hardware firewall (or advanced router, not the commercial ones, but enterprise grade) - they do what you want, but they are very expensive and not worth for a home experiment

    3. a proxy server - this can do what you want

    Other alternatives that might or might not work would include editing the hosts file, as you said, but as stated earlier I don't recommend it, it's a system file and if you forget about it, then it can be a hindrance (also keep in mind that normally you should not use a Windows user with admin rights even at home, but that is another story) and a browser extension (which I would guess only changes content on pages, not the way a browser works (such as changing URLs).

    I think a proxy server is the best pick here. Try it and let me know.

    Keep in mind I still recommend you read about networking in order to get a better idea of what you can and can't do in each setup.