2011-02-06 12 views
3

vb.netやjavaにコンピュータのIDを取得するためのコードはありますか? 私はマイクロソフトのようなソフトウェアのライセンスを作るためにコンピュータのIDを取得できるプログラムを書いてみたいですか?事前にコンピュータのIDを取得するには?

おかげ

マカラ

+2

を、あなたは、コンピュータのIDとはどういう意味ですか? – Alxandr

+0

可能な複製[JavaベースのユニークなコンピュータIDハードウェア](http://stackoverflow.com/questions/3597237/unique-computer-id-hardware-based-in-java) –

+1

彼はWMIを使用してマザーボードのシリアル番号を読んでください - 上のリンクされたSOの質問を参照してください。 –

答えて

7

まず第一には、マイクロソフトのライセンスは、このように動作しません。

彼らは物事の側に生成されたキーを持っています。彼らがあなたにソフトウェアのコピーを販売するとき、彼らはあなたに鍵を与えます。鍵を入力すると、暗号化されたtcpパケットがMSに送信され、鍵が現在使用中であることが識別され、使用回数が増えます。その後、システム上に、そのキーの認可を含むうまく隠されたファイルを作成します。

「コンピュータのID」を取得することはありません。

MSは、プロセッサタイプ、ハードドライブ、およびマザーボードの製造元/モデルを含むシステムのスナップショットを作成して、コンポーネントが変更されたかどうかを確認しますコンピュータのライセンスを再確認する必要があるかどうかの潜在的なチェック

これは、コンピュータシステムに単一の「ID」がないという考えに戻ることになります。最後に試行されたのは、PIIプロセッサーを搭載したインテルのものでした(私は信じていました)。しかし、公衆の反発は十分であり、シリアルナンバーをチップに置くのを止めた。

次にできることは、MACアドレスを試してみることです。ネットワークカードは頻繁に変更され、これが落とし穴に埋もれてしまいます。

本当にライセンスキーが必要な場合は、ライセンスキーを実行するための他のメカニズムを調べることを強くお勧めします。あなたはこの機能を使用することができます

+0

ありがとうございます – Makara

2

、それはMACアドレスが返されます:

public String macname() throws IOException { 
    String mac = "null"; 
    String[] getmac = new String[] { "cmd", "/c", "getmac /NH" }; 
    Process pnew = Runtime.getRuntime().exec(getmac); 
    BufferedReader newin = new BufferedReader(new InputStreamReader(
      pnew.getInputStream())); 
    String line1 = ""; 
    String ab = ""; 

    while ((line1 = newin.readLine()) != null) { 
     ab = ab + line1; 
    } 
    int in = ab.indexOf(' '); 
    mac = ab.substring(0, in); 
    return mac; 
} 
+1

コンピュータはもちろん、MAC IDを持っていません。ネットワークカードは機能しますが、コンピュータには複数のネットワークインターフェイスカードがあります。 –

関連する問題