デュアル コアの PC があります。2 つの MAC アドレスがあります: 00-1D.... & 00-21..... これらの ID は 2 つのコアの ID ですか? この PC の一意の ID を取得したい場合、Java 呼び出しで取得する方法を教えてください。Java には "System.getId()" のようなものがあるのではないでしょうか?
フランク
デュアル コアの PC があります。2 つの MAC アドレスがあります: 00-1D.... & 00-21..... これらの ID は 2 つのコアの ID ですか? この PC の一意の ID を取得したい場合、Java 呼び出しで取得する方法を教えてください。Java には "System.getId()" のようなものがあるのではないでしょうか?
フランク
MAC は Media Access Control の略です。MAC アドレスは通常、ネットワーク アダプタの一意の ID を表します。PC に 2 つのネットワーク アダプタが必要です (LAN、WLAN?)。
Java で一意のシステム識別子を取得する方法については、こちらをご覧ください: Java で一意のコンピュータ識別子を取得する方法 (ディスク ID やマザーボード ID など)
.NET: http://sowkot.blogspot.com/2008/08/generating-unique-keyfinger-print-for.html
マイケル
(私がこれに答えた時点で、MACアドレスが正確に何であるかはすでに答えられていたので、繰り返すつもりはないので、未回答の質問に答えただけです。反対票は意味がありません)
この PC の一意の ID を取得したい場合、Java 呼び出しで取得する方法
一意の識別子をハードウェアにバインドするのではなく、エンドユーザーにバインドする必要があります。ハードウェアは変更できますが、エンドユーザーは変更できません。そのため、エンドユーザーに登録フォームに記入するように依頼してください (または Pascal の回答に従ってドングルを提供してください)。
MAC アドレスは、ネットワーク カード インターフェイスを識別する番号です。これを使用して、信頼できる方法で特定のマシンを識別することはできません (ユーザーは自分の NIC を変更でき、パワー ユーザーは MAC アドレスを動的に変更することさえできます)。
たぶん、ソフトウェア保護ドングルを使用できます( Java ソリューションがあるようです)。ただし、このソリューションでさえ、信頼できるクライアントの問題全体を解決するわけではないことに注意してください。
From Google :: メディア アクセス コントロール アドレス (MAC アドレス) は、ほとんどのネットワーク アダプターまたはネットワーク インターフェイスに割り当てられた一意の識別子です。
ID はネットワーク インターフェイス用です。また、これらは不変ではなく、常に一意であるとは限りません。
MAC 情報を取得する方法については、java.net.NetworkInterface および java.net.InetAddress を調べてください。
MAC はメディア アクセス制御 ID で、最初の 2 バイトは国を表し、4 バイトはメーカーを表します。残念ながら、NIC の最新の大量生産の出現により、同じアダプターは 2 つとなく、MAC は簡単に動的に変更できます。昔は、NIC は DIP スイッチ (デュアル インライン ピン) で構成されていました。これにより、IRQ、ジャンパー アドレスなどの NIC の設定を変更することができました...
それらはプロセッサコアとは何の関係もありません。それは別のハードウェアです。
MAC アドレスを取得する移植可能な方法はありません。理論的にはifconfig
、*nix/Linux バリアントのコマンドを使用できます。Windows 環境では、ipconfig
コマンドを使用できます。いずれかを使用して、問題の関連するアダプターを検索できます... Linux でのこの例が示すように...私のネットワークアダプターは「eth0」と呼ばれます...
ifconfig eth0 | grep HWaddr | カット -d\t -f4
戻ります:
HWaddr 00:02:03:04:05:06