جافا اسم الجهاز الحالي وتسجيل في المستخدم؟

StackOverflow https://stackoverflow.com/questions/473446

  •  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");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top