【问题标题】:PHP Sending Raw PacketPHP 发送原始数据包
【发布时间】:2012-08-31 03:22:48
【问题描述】:

我想知道如何通过网络发送带有原始数据的数据包。我需要能够获取 LAN 上设备的物理地址,因此我计划广播或多播 ARP 数据包。

下面是一个正确构造的请求设备 IP 的 ARP 数据包。

0000  00 1e e5 fb a5 21 00 1a  70 dd e1 f2 08 06 00 01   .....!.. p.......
0010  08 00 06 04 00 01 00 1a  70 dd e1 f2 c0 a8 01 01   ........ p.......
0020  00 00 00 00 00 00 c0 a8  01 90                     ........ ..      

这是十六进制的原始数据。

如果我要使用 ASCII 格式的数据,是否像打开套接字并使用正确的端口号发送信息一样简单? 实际上,由于这是 2 级而不是 3 级,这意味着没有 TCP 和 UDP(我认为?)那我该如何发送呢?

【问题讨论】:

  • 请定义什么是raw packet

标签: php arp


【解决方案1】:

ARP 运行在链路层,TCP 套接字和 UDP 运行在 IP 上。 PHP 可以打开一个原始的 IPv4 套接字。使用socket_create()。文档页面上有示例。

还有一些可以构建的 shell 工具执行此操作,您可以在 PHP 中使用exec() 或相关函数运行它们。

确切的工具和用法将取决于您的操作系统,您在问题中没有提到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多