PHP & Others

[함수] [양키협찬] 맥어드레스(Mac Address) 구하기 (WIN + Linux)

컨텐츠 정보

  • 33,246 조회
  • 1 댓글
  • 0 추천
  • 목록

본문

<?
    $ip=getenv("REMOTE_ADDR");

    if(PHP_OS=='WINNT'){
        exec("arp -a", $rgResult);
        $mac_template="/[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}/i";
        foreach($rgResult as $key=>$value){
            if(strpos($value, $ip)!==FALSE){
                preg_match($mac_template, $value, $matches);
                break;
            }
        }
    } else{
        exec("arp -a | grep $ip", $rgResult);
        $mac_template="/[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}/i";
        preg_match($mac_template, $rgResult[0], $matches);
    }
    $mac=$matches[0];

    echo "<xmp>"; print_r($mac); echo "</xmp>";
?>

양키 사이트에서 퍼온건데 출처가 기억이 안납니다. ㅡㅡ;;
올리신 양키님께 묵념...

웹호스팅 받는 사람은 안됩니다. ^^;; (서버관리자에게 샤바샤바하면...)

윈도우 + 리눅스 다 되더군요.

ps. arp 명령어는 Address Resolution Protocol의 약자로써 arp cache에 있는
    IP 어드레스에 대한 HW 어드레스(대개 MAC 어드레스란 표현을 많이 사용한다)를
    돌려주는 명령어이다

    [출처] arp 명령어|작성자 노랑배
    http://blog.naver.com/kosthb?Redirect=Log&logNo=80010224358

ps. arp를 exec()로 호출전에 PATH 뚫어주는 센스!!



관련자료

댓글 1
Today's proverb
일의 쾌감은 고됨을 잊게 한다. (호라티우스)