题
我怎么知道访问者的MAC地址在Linux主机上(Nginx的)?
从以太网用户。
感谢。
解决方案
您不能获得通过PHP。
网络协议在一个堆使用。当进行HTTP通信,Web服务器使用HTTP协议,负责高层沟通。此协议的TCP协议的基础上实现的(这带来流状的连接和端口号),而这又是IP协议的顶部(V4或V6,其中用于识别带来IP地址),来实现这又在以太网协议的顶部实现。
在以太网协议是你需要有工作的人。它具有源MAC地址和目的地MAC地址两者。然而,最不幸的是,有很多与它的问题。
首先,它所传达的数据可能难以访问:我说“可能”,是因为我从来没有在如何做到这一点跌跌撞撞
第二,当他们访问您的网站就像你让你的客户端的路由器地址,你在以太网水平得到客户的路由器的MAC地址。除非他们不经过任何路由器(如果你的服务器直接连接到您的客户端机器没有任何干扰的路由器,因为这只会发生,因为有一大堆的路由器在那里,中继数据发送给互联网的其他部分),有没有机会,你会收到MAC地址将是你的客户。
三,Apache会永远不要试图访问这些数据。而且,由于PHP是“沙盒”到网络环境中的Apache给它,也没有办法,你可以回风以太网协议。
因此,从一个网站访问的访问者的MAC地址,从PHP,是不可能的。
修改看来你已经取出PHP的一部分从你的问题。所以很明显,最后一点会受不了了。
其他提示
您不能得到与PHP它不包含在HTTP
更一般的问题是这样的一个。由于所有PHP必须与(我假设这是您的网络服务器上运行PHP,这里)工作的HTTP请求,你将无法得到MAC地址。这需要一些访问者的侧运行。
这可以或可以不工作。我知道它会在LAN客户端工作,但是外部客户也可能是不正确的。我不知道过度联网我的,但它是值得一试吧?
如果您在Windows或Linux上执行使用arp -a命令,它会打印出你的ARP记录,然后你就可以解析为Mac。
除此之外,据我所知,Apache(以及为此PHP)不只是给出来的MAC地址在其ENV瓦尔。
*编辑:对不起,这是行不通的......更好的效用然而arping的,这将只是给你的路由器的MAC
如果你想这样做,客户端将需要直接连接到服务器,在...
之间没有路由器但是,如果是这样的话,那么arping的将工作......我不知道一个更好的工具,但它似乎有点浪费只是一个MAC地址进行轮询(根)。
MAC地址是唯一的对,如果我是正确的网络提供商可见(你的互联网主机可以看到路由器,例如MAC地址),不认为你可以用PHP得到它。