dポイントプレゼントキャンペーン実施中!

コンピュータ内でなるべく不変で一意な値を組み合わせて、ネットワーク上でほぼ確実に一意な識別子を作りたいと思います。

ユーザー名やコンピュータ名だけでは一意性に欠けるので、ユーザーIDとOSシリアルナンバー、MACアドレスなども足したいのですが、それらは何を参照すればいいのでしょうか?
レジストリのパスや関数名などあれば教えてください。

ユーザーIDはHKEY_USERS\S-?-?-??-???・・・に入っていますが、たまにここに複数あって、どれが自分のIDなのかわかりません。
MACアドレスもNICが複数刺さっている場合のプライマリの検出方法など。

ほかにもここに挙げたもの以外に、何かできるだけ一意で不変なものがあったら、教えてください。
IPなど頻繁に変わる可能性があるものはだめです。

開発環境
XP Pro SP1 + VB.NET

言語はVB.NETですが、これに依存しない手段でもかまわないのでVBのカテゴリには入れてません

実行環境
2000またはXP

A 回答 (13件中11~13件)

おはようございます。



uuidも一意だったと思います。
レジストリだと

HKEY_LOCAL_MACHINE\SOFTWARE\Rpc\
UuidSequenceNumber

だと思われます。
    • good
    • 0
この回答へのお礼

HKEY_LOCAL_MACHINE\SOFTWARE\にRpcがありません(汗。
UuidSequenceNumberも検索しましたがありませんでした。

お礼日時:2003/06/06 10:17

こことか、参考になるかと。



ただ、時刻も計算要素になるので、「不変」という点で希望にあわないかも。

参考URL:http://dobon.net/vb/dotnet/programing/guid.html
    • good
    • 0
この回答へのお礼

うーん、この作ったIDは保存しておくつもりですが、再度同じコンピュータで作ったときに、できれば同じ値を生成したいのです。
これだとちょっとつらいですね。

回答ありがとうございます。

お礼日時:2003/06/06 10:15

もっとも簡単な方法としては、固定IPアドレスを使う方法だと思います。

    • good
    • 0
この回答へのお礼

万人に使われることを想定しているので、固定IPと仮定はできません。
それに、NAT環境で複数のマシンでグローバルIPを共有する場合は意味がないし、プロキシを通すことも考えており、まったくグローバルIPに触れられない場合、プライベートIPも意味がありません。

お礼日時:2003/06/06 10:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!