【问题标题】:How to get the IP address of remote endpoint by knowing the mac address in PHP?如何通过知道PHP中的mac地址来获取远程端点的IP地址?
【发布时间】:2023-03-11 19:09:01
【问题描述】:

我尝试了类似的方法,但对我不起作用。

<?php 
$ip = getenv("REMOTE_ADDR") ;
Echo "Your IP is " . $ip;
?>

【问题讨论】:

  • 您的问题不清楚。你想要的输出是什么?
  • $ip=`arp | grep '$MAC_ADDRESS' | cut -f1 -d' '`; - 但你真的不明白你在这里问的是什么。

标签: php ip-address


【解决方案1】:

您无法将 MAC 解析为 IP。 MAC 用于 ARP 层并且仅在本地 LAN 上工作。 MAC 绑定到网络适配器/设备。在此设备上,您可以为 IP 协议内容分配多个 IP 地址。

你说的是MAC吗? 它们看起来像 00-50-56-C0-00-08 有时也用“:”隔开

评论后更新: 您无法将 MAC 解析为 IP。 您可以尝试一些技巧。 如果当前 PC 与该设备有联系,则 IP 可能会存储在 ARP 缓存中。 另一个技巧,如果您使用的是 DHCP 服务器,您可以查询该服务器是否已将 IP 分配给该 MAC。

【讨论】:

  • 我很少有基于 IP 的电话如何 MAC 地址用“:”分隔,我正在用 PHP 编写一个脚本来使用 MAC 地址查找这些设备的 IP 地址。或者您可以共享另一个以获取设备的 IP 地址。谢谢
  • 我扩展了答案。当手机访问您的 php 程序时,他们有一个 IP。我不明白只有MAC知道的地步。你想通过php访问手机中的网络服务器吗?
  • 我可以手动查看我手机的 IP,但我正在实施一个从远程位置访问手机的程序。因为我的手机没有恒定的 IP(手机 IP 不断变化)所以就是这样我想从 MAC 地址获取 IP,因为 MAC 地址是固定的,基于这个技巧,我可以获得 DHCP 分配给它的 IP。
  • 这种情况下需要查询DHCP服务器。您还可以将 ip 绑定到 DHCP 服务器中的 mac。然后 IP 将始终绑定到该电话。我认为这更容易。你说“远程位置” - 它在局域网之外?如果是,那么您可能无法访问 DHCP 服务器。
【解决方案2】:

试试这个

if($_SERVER["HTTP_X_FORWARDED_FOR"] != ""){
  $IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
  $proxy = $_SERVER["REMOTE_ADDR"];
  $host = @gethostbyaddr($_SERVER["HTTP_X_FORWARDED_FOR"]);
}else{
  $IP = $_SERVER["REMOTE_ADDR"];
  $proxy = "No proxy detected";
  $host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
}

【讨论】:

  • 我在 PHP 中试过,但没有用。它没有显示任何输出。谢谢
猜你喜欢
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2013-06-20
  • 2015-02-28
  • 1970-01-01
相关资源
最近更新 更多