【问题标题】:How to block a website dynamically in C#?如何在 C# 中动态阻止网站?
【发布时间】:2011-08-05 00:42:29
【问题描述】:

我想从用 C# 编写的 Windows 服务中动态阻止某些 URL。我不想通过写入主机文件来做到这一点。

例如,我想阻止 url http://example.com(在所有浏览器中),但还要在早上 7 点到 8 点阻止 http://example.com/another

这可能吗,我该怎么办?

最好的问候, 安德鲁

【问题讨论】:

  • 我认为如果你想让它适用于所有浏览器,写信给主机是你最好的选择。
  • 请使用example.com,例如RFC-2606中指定的域名
  • 顺便说一下,将域名添加到hosts 文件中只会阻止正确的名称解析。进程仍然可以使用 IP 地址访问该站点。

标签: c# url filter block


【解决方案1】:

您也许可以使用Windows Firewall API。请参阅 John Cole 的文章,Managed classes to view/manipulate the Windows Firewall

【讨论】:

  • 好主意。但如果用户关闭防火墙,我认为它不会起作用。使用第三方防火墙时也不起作用。我认为有某种代理可用。
【解决方案2】:

现在,我展示块的概念。谷歌网站。我希望这个解决方案能帮到你。

 private void BlockWebsite_Click(object sender, EventArgs e)
    {
        String path = @"C:\Windows\System32\drivers\etc\hosts";
        StreamWriter sw = new StreamWriter(path, true);
        String sitetoblock = "\n 127.0.0.1 google.com";
        sw.Write(sitetoblock);
        sw.Close();
        MessageBox.Show("Site Blocked");
    }
}

【讨论】:

  • OP 请求了一个不涉及写入/etc/hosts 文件的解决方案。如果您坚持这样做,请提供一个很好的理由,说明尽管 OP 要求,但必须使用它。
猜你喜欢
  • 2010-12-05
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多