ホームページ > バックエンド開発 > PHPチュートリアル > PHP がクライアントの MAC アドレスを取得するプログラム コード_PHP チュートリアル

PHP がクライアントの MAC アドレスを取得するプログラム コード_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:46:50
オリジナル
1366 人が閲覧しました

MAC アドレスはネットワーク カードのアドレスです。通常、ブラウザーのセキュリティ制限により、ユーザーの MAC アドレスを取得することはほとんど不可能です。ここでは、誰でも遊べるコードを 2 つ紹介します。

例1

PHPコード:

コードは次のとおりです コードをコピー
@exec("arp -a",$array); // arp -a コマンドを実行し、結果を配列 $array に入れます
echo "
";
Print_r($array); //取得した配列を出力します

foreach($array as $value)
{
if( //一致した結果は配列 $mac_array に配置されます
strpos($value,$_SERVER["REMOTE_ADDR"]) &&
Preg_match("/(:?[0-9a-f]{2}[:-]){5}[0-9a-f]{2}/i",$value,$mac_array)
)
{
$mac = $mac_array[0];
休憩;
}
}
echo $mac // クライアント MAC を出力します
?>


例2

コードをコピー
代码如下 复制幣

クラス MacAddr
{
    パブリック $returnArray = array();   
    パブリック $macAddr;  
 
    関数 __contruct($os_type=null){
        if(is_null($os_type)) $os_type = PHP_OS;  
        スイッチ (strto lower($os_type)){
        ケース「Linux」:
            $this->forLinux();  
            壊す;  
        ケース「ソラリス」:
            壊す;  
        ケース「unix」:
            壊す;  
        ケース「aix」:
            壊す;  
        デフォルト:
            $this->forWindows();  
            壊す;  
        }
        $temp_array = 配列();  
        foreach($this->returnArray as $value ){
            if(preg_match("/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0 -9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0- 9a-f][:-]"."[0-9a-f][0-9a-f]/i", $value, $temp_array)){
                $this->macAddr = $temp_array[0];  
                壊す;  
            }
        }
        unset($temp_array);  
        $this->macAddr を返す;  
    }
 
    関数 forWindows(){
        @exec("ipconfig /all", $this->returnArray);  
        if($this->returnArray)
            $this->returnArray を返す;  
        それ以外の場合{
            $ipconfig = $_SERVER["WINDIR"]."system32ipconfig.exe";  
            if (is_file($ipconfig))
                @exec($ipconfig." /all", $this->returnArray);  
            その他
                @exec($_SERVER["WINDIR"]."systemipconfig.exe /all", $this->returnArray);  
            $this->returnArray を返す;  
        }
    }
 
    Linux 用関数(){
        @exec("ifconfig -a", $this->returnArray);  
        $this->returnArray を返す;  
    }
}

$mac = 新しい MacAddr(PHP_OS); エコー $mac->macAddr; エコー "
";
// クライアントを取得します
// Linux
$command = "arp -a {$_SERVER['REMOTE_ADDR']}"; エコー $ コマンド
エコー "
"; $結果=`{$コマンド}`;
// ウィンドウ
$command = "nbtstat -a {$_SERVER['REMOTE_ADDR']}"; エコー $ コマンド
エコー "
"; $結果=`{$コマンド}`; print_r($result); ?>




サーバー側ロジックの取得に大きな問題はありませんが、権限の問題が発生する可能性があります。
クライアントの取得が遅くなる場合があり、arp/nbstat コマンドの実行も遅くなります。



コードは次のとおりです


<スクリプト言語="JScript" イベント="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo"> document.forms[0].lbMacAddr.value=unescape(MACAddr); <スクリプト言語="JScript" イベント="OnObjectReady(objObject,objAsyncContext)" for="foo"> if(objObject.IPEnabled != null && objObject.IPEnabled != "未定義" && objObject.IPEnabled == true && objObject.MACAddress != null && objObject.MACAddress != "未定義") MACAddr = objObject.MACAddress; <スクリプト言語="JScript"> var サービス = locator.ConnectServer(); varMACAddr ; var IPAddr ; var ドメインアドレス 変数 sDNS 名 service.Security_.ImpersonationLevel=3; service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration'); IE ブラウザにのみ適用され、アラーム プロンプトが表示されます






http://www.bkjia.com/PHPjc/632908.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/632908.html

技術記事

MAC アドレスはネットワーク カードのアドレスです。通常、ブラウザーのセキュリティ制限により、ユーザーの MAC アドレスを取得することはほぼ不可能です。ここに 2 つのコードを示します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート