【问题标题】:How to control Android data packets using PHP?如何使用 PHP 控制 Android 数据包?
【发布时间】:2018-06-22 15:38:00
【问题描述】:

我知道Android is based on Linux。另外,我对 PHP 相当了解,我认为 PHP for Linux 是一个合适的选择(如果我错了,请纠正我)。

很多天前,我遇到了一个问题。问题是,如何使用 PHP 代码控制packets?我可以这样做吗?

让我再说一遍。要连接到网络,我们有network interfaces(请参阅/sys/class/net)。在Android中,有很多接口,比如wlan0(就我而言)。它用于WiFi和WiFi网络共享等无线连接。

经过大量研究,我发现了一个名为tc(流量控制)的Linux命令,用于控制网络数据包。但是,我真的不知道如何使用该命令来控制每个连接设备到我的 WiFi 热点的带宽。我想为每个人设置配额,如果他们达到配额,我会阻止他们使用我的互联网。我想为此目的使用 PHP。怎么做? (抱歉,我对 Linux 有点陌生!)

注意:我想通过 MAC 地址而不是 IP 地址来限制我的用户。

【问题讨论】:

  • 这和安卓有什么关系?如果 wifi 滥用者通过电脑连接,甚至是……可怕的……某些 iOS 设备,该怎么办?
  • @YvesLeBorg 不是和安卓有关吗?我想知道是否可以在我的 Android 设备中控制我的无线连接,以防止其他人(我知道他们是谁)吃我的数据。不用担心我的用户,我会使用强密码保护它,没有人拥有 iOS 设备!

标签: php android linux packet wireless


【解决方案1】:

你可以尝试用

嗅探包
$socket = socket_create(AF_INET , SOCK_RAW , SOL_TCP);  

这是一个包含更多信息的指南:https://www.binarytides.com/code-a-packet-sniffer-in-php/

或者您可以使用以下 PHP 库: https://github.com/marcelog/SimplePcap

这是他们的 github 存储库中的一个示例: https://github.com/marcelog/SimplePcap/blob/master/example/sniff.php

【讨论】:

  • 我可以通过这种方式通过 MAC 地址识别用户吗?如果是,如何?如果没有,您能否添加另一种方法来做到这一点?
  • 两种获取mac地址的方法:通过标头或cookie在请求中发送。或者它们必须在同一个 LAN(以太网段)中。看到这个问题:stackoverflow.com/questions/1420381/…
  • 链接中没有确切的答案。他们说你不能这样做,但是,我知道在我的情况下这是可能的。如果你去 WiFi 网络共享配置部分,你会看到你可以通过他们的 MAC 地址限制用户。另外,关于你所说的,我不知道标题或cookie是否可靠。据我所知,我认为我应该使用 tc 命令来获取客户端 MAC 地址,但这将是一个挑战。
  • 是的,限制路由器中的 MAC 地址。处理这些的是路由器,而不是路由器后面的服务器。你需要一个路由器 API 来实现你想要的:-)
  • 你把那个 GitHub 链接帮了我很多。最近,我关注了它,我的问题将得到解决。非常非常感谢!
【解决方案2】:

感谢@Gudgip,我编写了一个命令行工具,它使用 PHP 的强大功能在 Linux(当然也包括 Android)上运行,它通过接口嗅探数据包并将结果保存到文件中。例如,您可以查看每个用户从您的 WiFi 使用了多少数据。见:

https://github.com/machitgarha/dej

如果您发现问题,请打开一个。希望它可以帮助某人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多