【问题标题】:PHP: ARP?? Replying to an ARP RequestPHP: ARP??回复 ARP 请求
【发布时间】:2010-03-11 07:37:28
【问题描述】:

我知道这可能是一个不可能的问题,因为我们正在处理网络的两个不同层,但是是否可以使用 PHP 套接字发送对 ARP 请求的回复?

如果是这样,如何....例如,您会将套接字连接到哪个端口和 IP 地址?同样,我知道 arp 不使用端口号……至少我不能说。

我想用 PHP 来做,但是对于那些质疑我的意图的人来说,它最终是针对我正在为某个硬件编写的程序。好像网卡没有回复 ARP 请求,所以我想手动生成响应。

基本上,唯一能让我接近的函数是套接字函数。 UDP 和 TCP。

哦,我忘了....如果使用套接字无法实现 Arp,当我为我的主机名广播“A”记录时,我是否可以在某种 dns 中将我的 MAC 地址提供给路由器回答,所以路由器可以响应硬件IP地址的arp请求。

【问题讨论】:

  • shell_exec() 到可以发送您的 arp 请求的系统实用程序?您使用的是 Linux 还是 Windows?必须是跨平台代码吗?
  • 好吧,这很糟糕,两者都不是。它实际上是针对专有硬件的……请注意,这似乎不是很抱怨。我基本上坚持使用我得到的东西,而我得到的是套接字:)
  • 随便看看,其他一些我必须使用的东西是:SNMP 和以太网看门狗(不管是什么)

标签: php dns


【解决方案1】:

ARP 运行在链路层,套接字运行在 IP 上。如果您的主机不响应 ARP 请求,它就永远无法正确接收 TCP 或 UDP 数据包。您需要在操作系统或网络堆栈中实现 ARP。在 PHP 中这样做既不可能也不可取。

【讨论】:

    【解决方案2】:

    正如 Sjoerd 所说:无法通过“正常”渠道,因为 ARP 甚至不是 IP。但是如果你可以从 PHP 中调用libpcap,你就可以用它来嗅探 ARP 请求并注入回复。

    阅读您的编辑:DNS 也无济于事,因为它管理的是 IP 地址,而不是 MAC 地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 2013-05-18
      • 2016-11-27
      • 2016-05-22
      • 2012-08-07
      • 2013-11-29
      • 2012-11-18
      相关资源
      最近更新 更多