【问题标题】:Android get browser's addressAndroid获取浏览器地址
【发布时间】:2013-02-14 13:21:28
【问题描述】:

有没有办法从用户尝试使用某些侦听器或其他东西打开的浏览器获取地址,如果该地址在数据库中并且该地址被禁止,请停止在用户的浏览器中加载该地址?

【问题讨论】:

    标签: android android-browser android-broadcast android-internet


    【解决方案1】:

    如果您构建类似浏览器的应用程序,那么您可以控制它。 您可以阻止或报告页面已打开等。否则,这是不可能的!

    【讨论】:

    • 在应用程序级别阻止当然会更容易,但这不会阻止第三方应用程序访问同一网站,这可能是想要的?可以阻止所有应用程序,但必须在内核级别完成,是的,涉及更多工作。
    【解决方案2】:

    Android 是 Linux 操作系统的一种风格,您要做的实际上是创建防火墙。为了允许在 Linux 中创建防火墙,提供了Netfilter

    Netfilter 是 Linux 内核内部的一组钩子,允许内核模块向网络堆栈注册回调函数

    但是,为了提供更简单的接口来创建防火墙,Linux 风格通常实现 iptables(本质上是 Netfilter 之上的另一层)。

    iptables 是 Linux 内核防火墙提供的表(实现为不同的 Netfilter 模块)以及它存储的链和规则。不同的内核模块和程序目前用于不同的协议; iptables 适用于 IPv4,ip6tables 适用于 IPv6,arptables 适用于 ARP,ebtables 适用于以太网帧。

    在 linux 中,您实际上是创建 iptable 链来允许访问网站并阻止传入连接。

    但是

    我不知道 iptables 是在 Android 中实现的。您将不得不深入研究 Android 内核的源代码。其次,您需要对手机具有 root 访问权限。

    如果 iptables/netfilter 没有在 Android 内核中实现,我个人会考虑这样做。是的,工作量很大,但为什么要重新发明轮子?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 2015-09-07
      • 2014-08-04
      • 1970-01-01
      • 2010-10-19
      • 2012-05-03
      相关资源
      最近更新 更多