我正在阅读我希望的那个问题(如何在 C# 中创建简单的代理?)。
我只是想开发 ac# 应用程序,例如,监视 Firefox、IE 等并记录所有导航页面。根据访问的页面,我想阻止该网站(如父母过滤器)。
代码片段/示例很好,但如果你能告诉我这些类的一些使用方向,我将不胜感激。:-)
我正在阅读我希望的那个问题(如何在 C# 中创建简单的代理?)。
我只是想开发 ac# 应用程序,例如,监视 Firefox、IE 等并记录所有导航页面。根据访问的页面,我想阻止该网站(如父母过滤器)。
代码片段/示例很好,但如果你能告诉我这些类的一些使用方向,我将不胜感激。:-)
我会回答适合家长的:ala“家长控制”
当孩子不到 10 岁时,您可以从代理服务器开始。之后,他们将弄清楚如何绕过代理(或运行他们自己的绕过代理的客户端应用程序)。在青少年早期,您可以使用原始套接字。将此程序键入 Visual Studio (C#)。
class Program
{
static void Main(string[] args)
{
try
{
byte[] input = BitConverter.GetBytes(1);
byte[] buffer = new byte[4096];
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
s.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.91"), 0));
s.IOControl(IOControlCode.ReceiveAll, input, null);
int bytes = 0;
do
{
bytes = s.Receive(buffer);
if (bytes > 0)
{
Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, bytes));
}
} while (bytes > 0);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
请注意,这只是一个“片段”,缺乏适当的设计和错误检查。[请不要使用“原样”-您确实要求先机]将IP地址更改为您的机器。以管理员身份运行程序(在命令行中使用“runas”,或右键单击“以管理员身份运行”)。只有管理员可以在现代版本的 Windows 上创建和使用原始套接字。坐下来观看节目。
所有网络流量都传递到您的代码(显示在屏幕上,使用此程序看起来不太好)。
下一步是创建一些协议过滤器。了解各种 Internet 应用程序协议(假设您还不知道),修改程序以检查数据包。查找 HTTP 协议,并保存适当的数据(如 GET 请求)。
我个人为 AIM (AOL Instant Messenger)、HTTP、MSN messenger (Windows Live Messenger)、POP 和 SMTP 设置了过滤器。今天,由于孩子们现在更喜欢 Facebook 墙而不是 AIM,因此 HTTP 几乎可以满足所有需求。
随着孩子们进入青少年时期,您将希望退出监控。有人说这是为了让孩子“长大”,但真正的原因是“<strong>你不想知道”。我放弃了只收集获取请求的 URL,以及明文形式的用户名/密码(用于紧急情况)(pop、基本身份验证等)。
我不知道青少年后期会发生什么;我无法想象事情会变得更糟,但我被告知“我还没有看到任何东西”。
就像之前有人说的那样,这只在目标机器上运行时才有效(我在房子里的所有机器上运行一个副本)。否则,为了简单的监控检查你的路由器——我的路由器有一些不错的日志记录功能。
我最后的评论是,这个应用程序应该直接用 C/C++ 编写,针对 Win32 API,并安装为在机器上以管理权限运行的服务。我认为这种类型的代码不适合托管 c#。您可以在 C# 中附加一个 UI 以进行监视和控制。您必须对代码进行工程设计,以使对系统的显着影响为零。