จะทราบได้อย่างไรว่าผู้ใช้ระยะไกลใช้ชื่อโดเมน Windows ที่เป็นรูปธรรม [ซ้ำกัน]

ฉันกำลังพยายามพัฒนา Java Web App เพื่อทราบว่าผู้ใช้ที่เข้าถึงเซิร์ฟเวอร์กำลังใช้คอมพิวเตอร์ที่กำหนดค่าด้วยโดเมน Windows ที่เป็นรูปธรรมหรือไม่

สิ่งที่ฉันต้องรู้คือชื่อของโดเมนระยะไกล ตามค่าที่ฉันได้รับจากสิ่งนี้:

System.getenv("USERDOMAIN");

เป็นไปได้ไหม?

ขอบคุณ.


person Carlos Durán    schedule 10.02.2016    source แหล่งที่มา
comment
ชื่อโดเมนไม่เหมือนกับระบบปฏิบัติการที่บุคคลนั้นใช้งานอยู่... ฉันไม่คิดว่าชื่อโดเมนจะถูกส่งไปในตัวแทนผู้ใช้   -  person Sumurai8    schedule 11.02.2016


คำตอบ (1)


คุณสามารถรับ User-Agent จาก header ของคำขอ HTTP ของผู้ใช้:

String userAgent = request.getHeader("User-Agent");

และคุณมีข้อมูลทั้งหมดที่คุณต้องการ: ระบบปฏิบัติการ เบราว์เซอร์ ฯลฯ

คุณสามารถใช้ลิงก์เหล่านี้เพื่อทำความเข้าใจข้อมูล User-Agent ได้ดียิ่งขึ้น:

แก้ไข

สิ่งที่คุณสามารถทำได้เพื่อเรียกคืนชื่อโดเมนของผู้ใช้คือ:

  • ดึงข้อมูลที่อยู่ IP จากคำขอ (ใช้ สิ่งนี้ และ สิ่งนี้ คำตอบเป็น จุดเริ่มต้น)
  • หลังจากมีที่อยู่ IP ของโฮสต์แล้ว คุณสามารถเรียกชื่อโดเมนของโฮสต์ได้ตามที่อธิบายไว้ ที่นี่
person aribeiro    schedule 10.02.2016
comment
ด้วยเหตุนี้ ฉันจึงรู้ได้เฉพาะเมื่อผู้ใช้เชื่อมต่อจากระบบ Windows เท่านั้น แต่ฉันไม่ทราบชื่อโดเมน - person Carlos Durán; 11.02.2016
comment
@ CarlosDurán โปรดตรวจสอบคำตอบที่อัปเดตของฉัน - person aribeiro; 11.02.2016
comment
ขอบคุณ @aribeiro แต่โซลูชันนี้ใช้งานได้เฉพาะเมื่อคอมพิวเตอร์เชื่อมต่อโดยตรงกับ LAN เท่านั้น แต่ถ้าเชื่อมต่อผ่านการเชื่อมต่อ VPN ฉันจะดึงข้อมูลได้เฉพาะ IP ไม่ใช่โดเมน (หรือเวิร์กกรุ๊ป) - person Carlos Durán; 11.02.2016