私は(Javaで)アプリケーションを構築していますが、そのパフォーマンスの測定値を自分自身に提供したいと思います。タイミングを計っている長時間実行プロセスが複数あり、メトリックを受信するために使用するWebサーバーがありますが、特定のユーザーに固有の番号を作成したいと思います(私のプログラムはログイン)コンピュータに。
したがって、ジョーがコンピューターAにログオンして私のアプリケーションを実行すると、1234のような一意の番号が与えられます。ジェーンが同じコンピューターにログオンした場合は、4321などの別の番号が使用されます。ただし、ジョーがコンピューターにログオンした場合B、それは完全に別の番号、たとえば5678を作成します。また(明確にするために)ジョーがコンピューターAに再度ログオンした場合でも、番号1234が生成されます。
また、もっとやりがいのあることですが、同じコンピューターが別のネットワーク上にある場合は、別のIDが必要です。
これらの数値は任意であり、これより長くなります。これまでの私のコードは、次の場所8akb7d3n7lp1i1jo6apfhegp593kja5hg38b6o1a5godm38g97omm7bmc3jekc6apopgjhf9g
からUIDとして生成されます。
try {
byte[] mac = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getHardwareAddress();
String names = new BigInteger(mac).toString(16) + InetAddress.getLocalHost().getHostAddress() + get("user.name") + get("os.version") + get("java.vendor");
BigInteger uid = new BigInteger(names.getBytes());
thisUsersUid = uid.toString(26);
} catch (SocketException ex) {
Logger.getLogger(TimingLogger.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnknownHostException ex) {
Logger.getLogger(TimingLogger.class.getName()).log(Level.SEVERE, null, ex);
}
この情報を簡単に読み取れるようにしたくないので(ご存知かもしれませんがnames="-f4b86eb8ee1192.168.0.20lee10.6.8Apple Inc."
)、それにハッシュ関数を追加します。
だから私の質問は、結局のところ、この宣伝文句は次のとおりです:これはそれを行うための良い方法ですか?これよりも優れた仕事をすることができる図書館はありますか?それとも私はただ欲しすぎているのでしょうか?
事前に感謝します(「なぜ?」というコメントでも)