1

いくつかのクライアント サーバーに PHP スクリプトのセットを配置しており、そのサーバーの MAC アドレスを取得して保存し、PHP スクリプトが別のサーバーで使用されていないことを確認したいと考えています。

どうすればPHPを使用してコンピューターのMacアドレスを取得できますか?

PHP スクリプトが別のマシンで使用されているかどうかを判断するより良い方法はありますか?

皆さんありがとう

4

5 に答える 5

2

コードを難読化しない限り、スマート クライアントは自分の MAC アドレスを偽造できます。

編集:(単純なアイデア)

クライアントのマシンにアプリをインストールするときは、そのマシンのみに属する一意のトークンを作成する必要があります。

例:

  • ファイル作成のタイムスタンプ
  • インストールのタイムスタンプ
  • ファイルの場所 (すべてのクライアントで同じではない可能性が高い)

これらをマージし、ハッシュし、保存してから、すべてのページ呼び出しでチェックします。

于 2010-08-24T09:45:58.317 に答える
1

訪問している PC から MAC アドレスを取得する簡単な方法はないと思いますが、それについてはよくわかりません。

より簡単な方法はどうですか: セッションを使用しますか? 何もない場合はセッションを割り当てるだけで、マシンごとに 1 つになります (別のブラウザーを使用している場合を除く)。実行をそれにロックできます。

MACでロックするほど「完全に安全」ではありませんが、それでも長い道のりです...

于 2010-08-24T09:47:06.347 に答える
1

PHPコードを実行しているWebサーバーのMACアドレスを取得したい場合:

system ('ipconfig /all') 

ウィンドウと通常(フレーバーに応じて!)

system('netstat -i')

MACアドレスを含む一連のネットワーク情報が表示されます。

ただし、MAC アドレスが一致しないときにスクリプトの動作を停止すると、クライアントから嫌われることを警告する必要があります。

MAC アドレスが変更されたときの状況と、新しい「ライセンス」の申請がどのように適合するか (適合しないか) を考えてみてください。

  • 壊れたネットワークカードを交換
  • ソフトウェアはピカピカの新しいサーバーに転送されます。
  • システム管理者は、柔軟な仮想マシン クラスタを開始します。
  • ソフトウェアは、クラスター内の別のマシンにフェイルオーバーします。
  • クライアントは、より安価で優れたホスティング プロバイダーを見つけます。
  • 災害が発生し、クライアントは別のデータセンターの別のマシンで物事を立ち上げて実行しようとしています。
  • クライアント マシンには複数のネットワーク カードがあります。
于 2010-08-24T10:07:44.690 に答える
0

長い間、私はツール PHTML Encoder (URL http://www.rssoftlab.com/ ) を使用してきました。このツールは PHP コードを保護し、「このマシンでのみ実行する」などの機能を設定できます。これをphp拡張機能としてインストールする必要があります。最終的にこれはあなたのための解決策です。

敬具

于 2010-08-24T09:50:32.937 に答える
0

これを達成する最善の方法は、独自のアルゴリズムを生成してサーバーのフィンガープリントを作成することだと思います。フィンガープリントの作成に使用されるコードは、リバース エンジニアリングを防ぐために難読化する必要がありますが、可能です。

フィンガープリントごとに 1 つの値に固執しないアルゴリズム ハッシャーを作成し、値を変化させます。

プライマリ サーバーに ping を実行できるように、ハッシュ ウィッチが検証されます。

例えば

function GenerateFingerPrint($account) //Each machine has a static UNIQUE ID
{
    //Create a fingerprint for the machine and machines location

    //Post the $account + $fingerprint to MAINSERVER.COM

    // Get hashed responce

    //Decode it and validate it to continue with script.
}

しかし、これらのコードはすべて、リバース エンジニアリングによって高度に難読化する必要があります。

于 2010-08-24T09:55:57.757 に答える