5

OK、MACアドレスを一意の識別子として使用していましたが、VPNをアクティブにしてMACアドレスが変更されるまで、すべてうまくいきました.....

だから、私には2つのオプションがあります:

1) 実際の物理ネットワーク カードの MAC アドレスを取得する

MACアドレスについては、これを達成する方法についていくつかのヒントを見つけました:

2.) マザーボード ID を取得し、代わりにそれを使用します。同じ ID を持つ 2 つのコンピューターを取得しないことを願っています (それは可能ですか?)

public String getMotherBoardID()
{
    String serial = "";
    try
    {
        ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard");
        ManagementObjectCollection moc = mos.Get();

        foreach (ManagementObject mo in moc)
        {
            serial = mo["SerialNumber"].ToString();
        }
        return serial;
    }
    catch (Exception)
    {
        return serial;
    }
}

あなたは何を言っていますか?仮想アドレスではなくカードから MAC アドレスを取得するコードを掘り下げて見つけようとする必要がありますか、それとも単にマザーボードに切り替える必要がありますか? そして、何も組み合わせる必要はありません。ターゲットのコンピューターで簡単に変更されないものが必要なだけです。

4

4 に答える 4

2

次のようなアプローチは、可能な限り安全だと思います

  1. 顧客の名前や会社などに関連付けられたソフトウェアのライセンス キーをユーザーに提供します。
  2. ユーザーはこのデータをプログラムに入力します
  3. プログラムが起動されるたびに、「家に電話」してライセンス情報を送信します
  4. ライセンスが(システムによって)有効であることが確認された場合、ソフトウェアは実際に機能できるようにするデータを受け取ります。そうしないと、何があっても機能しません (一部のパーツが欠落します)。

ライセンスされていない限り実行できない例(私は今からC#を考えています)は、いくつかの基本的なメソッドを作成することexternです. 有効なライセンスに応じて必要なアセンブリを送信するか、"Gotcha!" にフォールバックします。警告。

于 2012-08-02T10:50:35.127 に答える
2

マザーボード、NIC、およびハードドライブの値を組み合わせて使用​​できれば、より良い結果が得られます。

次の記事を確認してください:ハードウェア情報を取得する方法 (CPU ID、メインボード情報、ハードディスク シリアル、システム情報など)

于 2012-08-02T10:25:02.847 に答える
0

これにはマイクロソフトが提供するものを使用してください。ハードウェア識別子の組み合わせを使用します。MAC は、通常は変更できるため、良くありません。Microsoft は、固有のインストール ID を持っているはずです。

Windows 固有の識別子?

于 2012-08-02T10:27:39.653 に答える
0

私は個人的に次のことを行います、

  1. いくつかのハードウェア キーを取得します。

    1. UUID
    2. シリアルナンバー
    3. ハードディスクのシリアル番号
    4. 物理 MAC アドレス (これを行う方法のヒントについては、ここで私の解決策を参照してください)
  2. ライセンスを維持しながら、そのうちの 1 つ (または 2 つ) を変更できるようにします。

  3. ライセンスの再アクティベーションが必要です。
  4. 顧客の再アクティブ化の数を追跡し、疑いを抱く前に何らかの最大値を取得します。

WMIを使用しないでください。少なくとも 1/10 は機能しないと見積もっています。WMI をバイパスし、Windows API を使用してこれらのハードウェアの詳細を取得する必要があります。

個人的に似たようなものを開発し、10 の異なるもの (ソフトウェア属性を含む) を追跡し、変更を可能にするロジックを備えています。WMI の使用は、最初のリリースで失敗に終わりました。

于 2012-08-02T10:55:16.340 に答える