如何获取客户端PC名称?

时间:2015-09-18 17:23:58

标签: spring jsp authorization

在我的项目中,我想获取客户端用户的PC名称 但我使用的方法只是给我服务器的PC名称:

System.get(user.name)

1 个答案:

答案 0 :(得分:0)

抱歉,您无法直接

您最好的选择是User-Agent标头。你可以在JSP或Servlet中这样得到它,

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

标题看起来像这样,

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.13) Gecko/2009073021 Firefox/3.0.13

它提供有关浏览器的详细信息。但是,它的格式非常自由,因此很难解读每一个格式。您只需要弄清楚您将支持哪些浏览器并为每个浏览器编写解析器。当您尝试识别浏览器的版本时,请始终先检查更新的版本。例如,IE6用户代理可能包含IE5以实现向后兼容。如果先检查IE5,IE6也将被归类为IE5。

您可以从此网站获取所有用户代理值的完整列表,

http://www.user-agents.org/

使用User-Agent,您可以确定浏览器的确切版本。您可以在操作系统上获得一个非常好的想法,但您可能无法区分同一操作系统的不同版本,例如,Windows NT和2000可能使用相同的用户代理。

记住客户可能在代理背后的范围

一个明智的想法是使用javascript并通过ajax调用发送信息

浏览器,操作系统,屏幕颜色,屏幕分辨率,Flash版本和Java支持都应该可以从JavaScript中检测到(可能还有一些)。但是,至少在所有浏览器中都无法使用计算机名称。

你可以用IE'有时候'正如我在Intranet上的内部应用程序所做的那样,这只是IE浏览器。请尝试以下方法:

function GetComputerName()
{
    try
    {
        var network = new ActiveXObject('WScript.Network');
        // Show a pop up if it works
        alert(network.computerName);
    }
    catch (e) { }
}