System Theory: Client machines replace their DNS configuration with this system instead. It provides DNS services as a pass through to clients, but filters the DNS based upon a blacklist of sites. If the site is on the blacklist the DNS will not be properly resolved. It will instead return a fixed IP of another system. This system will simply show them that they are not allowed to visit this site. This is the program specs: Windows 2000 Service (must be able to run on Windows 2000 Pro or Server) DNS Proxy ??" Must be able to act as a DNS server (Does not need to be a DNS server can simply pass through to a real DNS server). Filtering based upon blacklist ??" If site is on the blacklist a fixed IP address is returned If site is not on the blacklist it is compared against another list (list of known sites). If the site is not on that list it is then written to the drive in a third list, but the DNS resolution is still allowed to happen. Blacklist ??" list of sites that are to be blocked Whitelist ??" list of sites that are known and are good Greylist ??" list of unknown sites These list of sites will be provided as a starting point and the system will then build on them over time. I would prefer to use an MSDE system, but Access would be OK for now as well. There will only be 5 clients using this system. It will be used to find sites that need to be added to the whitelist. The client is building a whitelist. This is a non-intrusive method of finding sites to add to the whitelist. I am open to alternative solutions, but not using proxies for all web traffic. The bandwidth would kill this since all traffic would have to run through the clients system rather than just DNS lookups. I would be interested in a Dot Net solution (VB or C#). But C++ would be fine as well.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Complete ownership and distribution copyrights to all work purchased.
## Platform
Windows 2000 service (Pro or server must be supported)