+ -
当前位置:首页 → 问答吧 → 【评论】PHP取得电脑网卡地址

【评论】PHP取得电脑网卡地址

时间:2006-08-13

来源:互联网

作者: PHPCHINA_CMS   发布时间: 2006-08-13

我使用编写ext的方式来实现~~更加可靠~~

for win(*nix原理一样,代码需要移植)

PHP_FUNCTION(yf_get_MAC)
{
  char    *IP = NULL;
  int     IP_len, len;
  HRESULT hResult;
  IPAddr  ipAddr;
  ULONG   pulMAC[2];
  ULONG   ulLen;
  char    buf[255];
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \"s\", &IP, &IP_len) == FAILURE)
  {
    RETURN_FALSE;
  }  
  ipAddr = inet_addr (IP);
        memset(pulMAC, 0xff, sizeof (pulMAC));
        ulLen = 6;
        hResult = SendARP (ipAddr, 0, pulMAC, &ulLen);
        if(NO_ERROR == hResult)
        {   
    PBYTE pbHexMac = (PBYTE) &pulMAC;
    len = sprintf(buf, \"%02lx:%02lx:%02lx:%02lx:%02lx:%02lx\", pbHexMac[0], pbHexMac[1], pbHexMac[2], pbHexMac[3], pbHexMac[4], pbHexMac[5]);
    RETURN_STRINGL(buf, len, 1);
  }
  else
  {
    RETURN_FALSE;
  }  
}

作者: mikespook   发布时间: 2006-08-13

取得服务器的MAC没啥意义吧?

作者: 姜运涛   发布时间: 2006-08-14

意义在于生成硬件特征的软件注册序列号~~~

作者: mikespook   发布时间: 2006-08-15

Parse error: parse error, unexpected T_STRING in D:\cs\mac.php on line 2

作者: papaxiong   发布时间: 2006-08-16

@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
      if(eregi("Physical",$array[$Tmpa])){
            $mac=explode(":",$array[$Tmpa]);
            echo $mac[1];
      }
是这样的

作者: xiaojia   发布时间: 2006-08-16