如何在 PHP 中获取已连接客户端的 MAC 和 IP 地址?

2023-11-24

我需要知道连接客户端的 MAC 和 IP 地址,如何在 PHP 中执行此操作?


服务器IP

您可以从以下位置获取服务器 IP 地址$_SERVER['SERVER_ADDR'].

服务器MAC地址

对于 MAC 地址,您可以解析以下输出netstat -ie在 Linux 中,或者ipconfig /all在Windows中。

客户端IP地址

您可以从以下位置获取客户端 IP$_SERVER['REMOTE_ADDR']

客户端MAC地址

除以下特殊情况外,您将无法使用客户端 MAC 地址:如果客户端与服务器位于同一以太网段。

因此,如果您正在构建某种基于 LAN 的系统和您的客户端are在同一个以太网段上,那么您可以通过解析输出来获取MAC地址arp -n(Linux)或arp -a(视窗)。

Edit:您在评论中询问如何获取外部命令的输出 - 一种方法是使用反引号,例如

$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;

#run the external command, break output into lines
$arp=`arp -a $ipAddress`;
$lines=explode("\n", $arp);

#look for the output line describing our IP address
foreach($lines as $line)
{
   $cols=preg_split('/\s+/', trim($line));
   if ($cols[0]==$ipAddress)
   {
       $macAddr=$cols[1];
   }
}

但是如果客户端不在 LAN 上怎么办?

好吧,除非您能让客户自愿提供该信息并通过其他方式传输,否则您就不走运了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 PHP 中获取已连接客户端的 MAC 和 IP 地址? 的相关文章

随机推荐

  • Bootstrap 4 与远程 Modal

    我无法使用新的 Twitter Bootstrap 版本 Bootstrap 4 alpha 让 Modal 在远程模式下工作 它与 Bootstrap 3 完美配合 使用 Bootstrap 4 我收到弹出窗口 但模型主体未加载 没有进行
  • 实施 Azure 共置缓存

    使用 VS2012 我从 WebRole Properties Caching Tab 添加了缓存功能 其中 它在 web config 中生成了以下 XML
  • 复合视图模型对象导致远程验证失败

    我在这个项目中的一些表单中使用了复合视图模型的模式 它运作得很好 在本例中 我有一个 VendorAddress 视图模型 我在这个项目的几个地方使用了 Address es 因此我制作了可以重复使用的 Address 视图模型对象 然后我
  • Airflow:为每个文件运行 DAG 的正确方法

    我有以下任务需要解决 文件通过端点不定期发送并存储在本地 我需要为每个文件触发 DAG 运行 对于每个文件 将执行相同的任务 总体流程如下 对于每个文件 运行任务 A gt B gt C gt D 正在批量处理文件 虽然这项任务对我来说似乎
  • 鼠标按下。兄弟姐妹 event.targets 上的传播

    我有 2 个具有 绝对位置 的兄弟节点 它们都处理 mousedown 事件 当我单击 div 2 的透明区域 如图所示 时 如何触发 div 1 的处理程序 如果重叠元素是动态的 我认为不可能使用常规事件冒泡来完成此操作 因为所讨论的两个
  • Azure Fluent API 创建 SQL Server 时出错 - 缺少 x-ms-request-id 标头

    我正在尝试使用 Azure Fluent API 创建一个新的 SQL Server https github com Azure azure sdk for net tree Fluent 但我总是得到 Microsoft Rest Az
  • 如何在代码中使用 wsDualHttpBinding 设置 WCF 客户端?

    我需要连接到我编写的 WCF 服务 而无需为我正在编写的客户端应用程序部署 app config 然而 我一直在努力弄清楚如何在代码中从客户端进行设置 据我所知 有人知道我需要做什么才能让它发挥作用吗 我真的很感激 这是我到目前为止得到的代
  • 如何在 Python 中找到正则表达式的所有匹配项?

    在我正在编写的程序中 我让 Python 使用re search 函数在文本块中查找匹配项并打印结果 但是 一旦在文本块中找到第一个匹配项 程序就会退出 在找到所有匹配项之前程序不会停止的情况下 如何重复执行此操作 有一个单独的函数可以做到
  • 根据目标类型的无形状贴图 HList

    我有以下问题 我想将 HList 的项目映射到另一个 HList 但如果 目标 类型是 URL 则源 HList 中的字符串只能转换为 URL val name Stackoverflow val url https stackoverfl
  • 如何通过JQuery ajaxSend事件覆盖成功函数

    我试图覆盖 ajaxsend 事件的成功函数 但它不起作用 这是代码 document ajaxSend function event xhr options console log ajaxSend var tempSuccess opt
  • 如何每两周在周一和周二运行石英时间表?

    我使用以下方式每两周的星期一运行一次计划 ITrigger trigger TriggerBuilder Create StartAt DateBuilder DateOf StartHour StartMinute StartSecond
  • 为什么 Windows 不允许在模拟其他用户时启动 WinSock

    使用我自己的程序或其他程序 如果进程是使用 CreateProcessWithLogonW 或 CreateProcessAsUserW 创建的 则在调用时我无法运行 Winsock 当我创建套接字时它返回此错误 WSAEPROVIDERF
  • 重写 java equals() 方法 - 不起作用?

    我遇到了一个有趣的 而且非常令人沮丧的 问题equals 今天的方法导致我认为经过良好测试的类崩溃并导致一个错误 我花了很长时间才找到它 为了完整起见 我没有使用 IDE 或调试器 只是使用老式文本编辑器和 System out 时间非常有
  • 获取图像输入流的大小

    我需要获取输入流中找到的图像的高度和宽度 这是我所做的 private Boolean testSize InputStream inputStream BitmapFactory Options Bitmp Options new Bit
  • 空查询上的 ALL 运算符 VS Any

    我正在读甲骨文文档在 ANY 和 ALL 运算符上 我很了解它们的用途 除了一件事 它指出 ALL 如果子查询返回零行 则条件计算结果为 TRUE ANY 如果子查询返回零行 则条件计算结果为 FALSE 对我来说这似乎不太符合逻辑 为什么
  • 使用 Tortoise-ORM 在 FastAPI 中进行测试

    我正在尝试编写一些异步测试FastAPI using 乌龟 ORM under Python 3 8但我不断收到相同的错误 见最后 过去几天我一直在试图解决这个问题 但不知何故 我最近在创建测试方面的所有努力都没有成功 我正在关注FastA
  • 如何在单元测试中调用依赖注入类方法?

    我是单元测试和 DI 的新手 无法找到一种简单的方法来调用使用依赖项注入设计的类中的方法 这是我的班级 public class AgentProvisioningServiceHelpher IAgentProvisioningServi
  • 在 FIFO 队列系统中,实现优先级消息传递的最佳方式是什么

    对于不能一致支持优先级消息的消息中间件 例如AMQP 当队列只有 FIFO 语义时 实现优先级消费的最佳方式是什么 一般用例是这样一个系统 当队列中存在大量积压消息时 消费者会先接收较高优先级的消息 然后再接收较低优先级的消息 如果给定的单
  • SQL Server 数据库更改工作流程最佳实践

    的背景 我的小组有 4 个 SQL Server 数据库 生产 UAT Test Dev 我在开发环境中工作 当需要升级我一直在处理的对象 表 视图 函数 存储过程 时 我向我的经理提出请求 他将其升级为测试 测试后 她向升级到 UAT 的
  • 如何在 PHP 中获取已连接客户端的 MAC 和 IP 地址?

    我需要知道连接客户端的 MAC 和 IP 地址 如何在 PHP 中执行此操作 服务器IP 您可以从以下位置获取服务器 IP 地址 SERVER SERVER ADDR 服务器MAC地址 对于 MAC 地址 您可以解析以下输出netstat