جافا اسم الجهاز الحالي وتسجيل في المستخدم؟
-
19-08-2019 - |
سؤال
هل من الممكن الحصول على اسم المستخدم بتسجيل الدخول حاليا في (ويندوز / يونكس) واسم المضيف الجهاز؟
وأفترض انها مجرد خاصية من بعض الطبقة بيئة ثابتة.
ولقد وجدت هذا لاسم المستخدم
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
وهذا لاسم الجهاز:
import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
وهو أول واحد فقط ل Windows؟
وماذا سوف تفعل ثانية واحدة، إذا لم يكن لديك مجموعة المضيف؟
المحلول
لتحصل على دخوله حاليا في المستخدم:
System.getProperty("user.name"); //platform independent
وواسم المضيف الجهاز:
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
نصائح أخرى
لتحصل على دخوله حاليا في المستخدم:
System.getProperty("user.name");
لتحصل على اسم المضيف الجهاز:
InetAddress.getLocalHost().getHostName();
للرد على الجزء الأخير من سؤالك، في API جافا يقول ان getHostName () سيعود
<اقتباس فقرة>واسم المضيف لهذا العنوان IP، أو إذا لم يتم السماح هذه العملية من خلال التدقيق الأمني، وتمثيل نصية من عنوان IP.
اقتباس فقرة> وعن طريق user.name
غير آمن كما يمكن أن تكون مزورة متغيرات البيئة. الطريقة التي تم استخدام غير جيدة، وهناك أساليب مماثلة لنظام التشغيل يونكس المبني على المعرفة
لتحصل على دخوله حاليا في مسار المستخدم:
System.getProperty("user.home");