获取mac地址是获取的服务器的地址 exex("ipconfig -all",$a,$b);获取ip是获取客户端的地址。  $ip = getenv('REMOTE_ADDR');发送到邮箱可以实现 linux 下用mail()函数,windows下自己去写socket程式,或使用第三方软件

解决方案 »

  1.   

    根据MAC地址获取IP地址可能你只能使用RARP协议~~~~自己写个命令,然后用PHP调用~~或者查询ARP缓冲~~~一旦获取了IP,发个邮件很简单吧?发邮件看看这个~~~~
    要程序的话联系我~~http://www.xxiyy.com/mail/
      

  2.   

    php无法实现根据mac地址获取ip地址?
      

  3.   

    根据mac地址获取IP地址从网络通信的角度来说使用的是RARP,逆地址解析协议~~~~PHP中并没有这方面的函数~~~~或者你需要第三方库,或者简单点,用C写个小程序~~~让PHP调用~~解析返回的信息~~~
      

  4.   

    php是工作在OSI七层模型里面的三层以上的,
    你说的功能跟不是ip层可以干的事情,只有数据链路层设备(如交换机)才可以根据mac地址转发。你的问法我觉得是有问题的,在IP层或者IP以上的层,MAC与通讯时没有关系的,所以你不能根据MAC地址得到IP地址。
    php可以得到访问者的IP地址,页可以通过执行一些命令得到MAC地址。
      

  5.   

    to hover_online(ξ芎メ)楼主问的问题并没有错,只不过要实现稍微有点难度~~其实他只是需要记录MAC地址对应的IP地址而已~~~这和用不用MAC地址通信没有关系~~~ARP_RARP分别对应的就是IP=>MAC,MAC=>IP。
    而且完全可以利用MAC地址得到IP地址~~~再指出一个小毛病~~并不是只有交换机才可以用MAC地址~~~
    如果你是2K的系统~~~你用 arp -a 命令看看你的缓冲就明白了~~~~
      

  6.   

    /*****************************
    *function   : get ip and mac of client
    *parameter  : mode,msgString 
    *returnvalue: 
    *discribe   : shell_exec arp IP in linux sys
    *foundtime  : 
    *****************************/
    function getClientIp($AiType=0){
    $sMac = "";
    $ip= getenv("REMOTE_ADDR"); 
    $ip1 = getenv("HTTP_X_FORWARDED_FOR"); 
    $ip2 = getenv("HTTP_CLIENT_IP"); 
    ($ip1) ? $ip = $ip1 : null; 
    ($ip2) ? $ip = $ip2 : null; 
    if ($AiType > 1)
    {
    $sCmd = "arp $ip";
    $sString = shell_exec($sCmd);
    for($iCount=0;$iCount<10;$iCount++)
    $sString=str_replace("  "," ",$sString);
    $aTemp = split(" ",$sString);
    $sMac = trim($aTemp[count($aTemp)-3]);
    }
    switch($AiType)
    {
    case 0:
    $sResult = "";
    break;
    case 1:
    $sResult = $ip;
    break;
    case 2:
    $sResult = $sMac;
    break;
    case 3:
    $sResult = $ip . " " . $sMac;
    break;
    default:
    $sResult = "";
    break;
    }
    return $sResult;
    }
    --------------------------
    win下面执行ntbstat -a ip
      

  7.   

    to:mikespook(Mike大懒猫) 
    ________________________
        你没有看清,我实说 "例如交换机",只是这个设备在二层比较典型,所有的通讯就是要从高层到低层过程,都要化为bit流,所以pc机上当然也可以得到mac地址, 例如你所说的 arp -a    但是对于php来讲,他不需要知道MAC地址,例如你发一封信给别人,这个封信要经过无数的 交换机和路由器, 还是可以送到另外一台机器上,事实上,你是不知道他的MAC地址,而是ip地址和掩码。
      

  8.   

    ]<?php
    @exec("ipconfig /all",$array);
    for($Tmpa;$Tmpa<count($array);$Tmpa++){
        if(eregi("Physical",$array[$Tmpa])){
            $getstr=explode(":",$array[$Tmpa]);
            echo $getstr[1];
        }
    }
    ?>
      

  9.   

    路由寻址分为两种:直接和间接交付,当目的地址的netid与发送的地质的netid都在同一望断,所以它直接就能找到,直接向下一层所以一般在局域网里面,发送的netid与目的的netid都在同一网段(但也不都是如此),所以你直接就可以通过arp地质解析协议,得到目的主机(或其他设备)的MAC地质,但是当netid与目的netid不再同网段的时候,他就要通过网关