这是我写的函数,只用于linux下
<?PHP
function getmac($ip){
 $str=exec("grep '$ip' /proc/net/arp");
 ereg("(..:..:..:..:..:..)",$str,$regs);
 return $regs[1];
}
echo getmac($REMOTE_ADDR);
?>

解决方案 »

  1.   

    win下用php执行
    ipconfig -all
    命令或者别的什么得到输出后,用正则表达式提取
      

  2.   

    我是指用服务器上的PHP程序取得客户机的网卡的MAC地址。
      

  3.   

    客户机的网卡的MAC地址?
    你应该去黑客论坛问这种问题
      

  4.   

    我的意思是做一个严格的验证,用客户机的MAC地址,这样程序安全啊!不知道有没有人做过
    IP地址可以冒充啊!
      

  5.   

    我上面的函数不能用吗?我一直都用得好好的啊!
    不过如果客户通过代理访问,应该得到的是代理机的MAC
      

  6.   

    如果客户机没有装网卡,就根本没有网卡地址,怎么获得?
    Internet 的基础是 TCP/IP 协议,而以太网属于数据链路层,怎么获得?
    网卡地址属于客户端的“隐私”,网站有权不经许可就获得吗?
      

  7.   

    to alexxing:网卡地址属于客户端的“隐私”,网站有权不经许可就获得吗?
    但是我现在就有这种需求。我想做一个内部开发室的网上签到系统。我需要取得网卡的mac地址。这样我才能防止IP伪装。因为对于内部机器是同一网段,我要做一个IP伪装是太容易了。我不知楼主是不是也是和我这样的用途。
    我现在倒是试着用C语言来做这个工作。呵呵。不知道能不能完成。我用了binscut的方法,不过不能有时间就不能取。也就是说只能取一部分客户机的MAC,不知是不是还要做些什么样的设置。我倒是比楼主还积极,真不好意思。呵呵
      

  8.   

    在不经过网关和代理的情况下适用!我用于局域网同网段没有问题。
    这个方法其实就是读arp记录,而这个记录需要客户端访问时才能存在,过一段时间就会消失,所以在客户端访问你的PHP页面时可以通过这个办法获得来访的IP和MAC,如果你想主动的去探测一个IP的MAC,就可能会失败。