Php 访问我的网站时如何获取客户端MAC地址?

Php 访问我的网站时如何获取客户端MAC地址?,php,mac-address,Php,Mac Address,我需要知道connect客户端的MAC地址, 如何在PHP中实现这一点 我认为除非它的桌面应用程序在您用户的机器上运行,否则这是不可能的。我认为这是不可能的,除非它的桌面应用程序在您用户的机器上运行。通常,由于安全问题,这是不可能的。因为MAC地址是您的机器地址,您的服务器无法访问您的机器。MAC地址不会在设备连接到的LAN之外广播-它不会离开路由器并传递到服务器。通常情况下,不可能出现安全问题。因为MAC地址是您的机器地址,您的服务器无法访问您的机器。MAC地址不会在设备连接到的LAN之外广播

我需要知道connect客户端的MAC地址,
如何在PHP中实现这一点

我认为除非它的桌面应用程序在您用户的机器上运行,否则这是不可能的。

我认为这是不可能的,除非它的桌面应用程序在您用户的机器上运行。

通常,由于安全问题,这是不可能的。因为MAC地址是您的机器地址,您的服务器无法访问您的机器。MAC地址不会在设备连接到的LAN之外广播-它不会离开路由器并传递到服务器。

通常情况下,不可能出现安全问题。因为MAC地址是您的机器地址,您的服务器无法访问您的机器。MAC地址不会在设备连接到的LAN之外广播-它不会离开路由器并传递到服务器。

通过internet,您不能。但是如果客户端在本地网络(LAN)上,请创建一个php文件并将其放入

shell_exec(“sudo$arp-an”。$\u服务器['REMOTE\u ADDR')
排队。注意:确保添加
默认apache用户通过运行
sudo-visudo

并将“www-data-ALL=NOPASSWD/usr/bin/arp”
添加到文件底部的某个位置。

通过internet,您不能。但如果客户端位于本地网络(LAN),请创建一个php文件并将其放入

shell_exec(“sudo$arp-an”。$\u服务器['REMOTE\u ADDR')
排队。注意:确保添加
默认apache用户通过运行
sudo-visudo

并将“www-data-ALL=NOPASSWD/usr/bin/arp”
添加到文件底部的某个位置。

您不能,除非客户端自己在消息中发送它

这是因为MAC地址是仅用于本地连接的本地地址。计算机使用它与本地网络(LAN)中的其他设备进行通信,如计算机、路由器、打印机等。 这也意味着拥有客户机的MAC地址对于长时间通信也是无用的,因为它们不在同一网络中

为了与本地网络(WAN)之外的设备通信,使用IP地址和端口号。 路由器使用IP地址来知道在哪里发送数据,而端口号通常在最终路由器中用于将公共IP地址转换为私有IP地址(192.168.X.X,172.16.X.X,10.X.X.X),称为NAT。
端口号也被目标计算机用来知道数据应该发送到哪个程序/进程。

您不能,除非客户端自己在消息中发送数据

这是因为MAC地址是仅用于本地连接的本地地址。计算机使用它与本地网络(LAN)中的其他设备进行通信,如计算机、路由器、打印机等。 这也意味着拥有客户机的MAC地址对于长时间通信也是无用的,因为它们不在同一网络中

为了与本地网络(WAN)之外的设备通信,使用IP地址和端口号。 路由器使用IP地址来知道在哪里发送数据,而端口号通常在最终路由器中用于将公共IP地址转换为私有IP地址(192.168.X.X,172.16.X.X,10.X.X.X),称为NAT。
目标计算机还使用端口号来知道数据应该发送到哪个程序/进程。

我知道这个线程有点旧,但我已经搜索了很多网页,试图找到相同问题的解决方案。在经过大量的网络搜索和大量的解决方案和代码之后,我写了下面的两段代码

请记住,您只能获取局域网上计算机的mac地址,无法通过浏览器获取mac地址。希望这也能帮助其他人

<?php
$ip_address = $_SERVER['REMOTE_ADDR'];
$mac = `arp $ip_address | cut -d " " -f4`;
echo "<br />Your Mac is: ";  
echo $mac;
?>

上面的第一个版本是我能得到的最简单的版本

下面的另一个更为复杂,因为它还带来了代理和主机名

<?php
$http_client_ip = $_SERVER['HTTP_CLIENT_IP'];
$http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR'];
$remote_addr = $_SERVER['REMOTE_ADDR'];
$hostname = gethostname();


if (!empty($http_client_ip)) {
    $ip_address = $http_client_ip;
} else if (!empty($http_x_forwarded_for)) {
    $ip_address = $http_x_forwarded_for;
} else  {
    $ip_address = $remote_addr;
}

//$output = shell_exec('arp -n $ip_address'); 
$mac = `arp $ip_address | cut -d " " -f4`;


//echo "<br /> <br />Your hostname is: $hostname";
//echo $hostname;  
echo "<br />Your Mac is: ";  
echo $mac;
//echo "<pre>$output</pre>"

?>


再一次,我只想把这个留在这里,将来帮助别人

我知道这个帖子有点老了,但我在网上搜索了很多,试图为同一个问题找到解决方案。在经过大量的网络搜索和大量的解决方案和代码之后,我写了下面的两段代码

请记住,您只能获取局域网上计算机的mac地址,无法通过浏览器获取mac地址。希望这也能帮助其他人

<?php
$ip_address = $_SERVER['REMOTE_ADDR'];
$mac = `arp $ip_address | cut -d " " -f4`;
echo "<br />Your Mac is: ";  
echo $mac;
?>

上面的第一个版本是我能得到的最简单的版本

下面的另一个更为复杂,因为它还带来了代理和主机名

<?php
$http_client_ip = $_SERVER['HTTP_CLIENT_IP'];
$http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR'];
$remote_addr = $_SERVER['REMOTE_ADDR'];
$hostname = gethostname();


if (!empty($http_client_ip)) {
    $ip_address = $http_client_ip;
} else if (!empty($http_x_forwarded_for)) {
    $ip_address = $http_x_forwarded_for;
} else  {
    $ip_address = $remote_addr;
}

//$output = shell_exec('arp -n $ip_address'); 
$mac = `arp $ip_address | cut -d " " -f4`;


//echo "<br /> <br />Your hostname is: $hostname";
//echo $hostname;  
echo "<br />Your Mac is: ";  
echo $mac;
//echo "<pre>$output</pre>"

?>


再一次,我只想把这个留在这里,将来帮助别人

首先。。你是怎么知道mac地址的?你有网络背景吗?你需要给我们看一下你的代码。。可能重复的代码在本地服务器上获取mac地址,但当我在实时服务器上使用它时,它不会首先显示任何内容。。你是怎么知道mac地址的?你有网络背景吗?你需要给我们看一下你的代码。。可能重复的代码在本地服务器上获取mac地址,但是当我在实时服务器上使用它时,它不会显示任何内容。你能详细说明当用户使用phpin访问我的站点时,我可以获取谁的mac地址吗,你能得到的最接近的信息是客户端ip地址。你能告诉我一些关于唯一访问者的其他信息吗?我想将我的站点访问者作为唯一的vsitor存储到数据库中,你知道ip对于一个用户来说不是唯一的。你能详细说明谁可以在用户访问我的网站时使用phpin获取mac地址吗?简而言之,你不能使用php获取mac地址,你可以获取的最接近的信息是客户端ip地址。你能告诉我有关唯一访问者的其他信息吗?我想将我的网站存储在