我正在尝试获取客户端系统详细信息,我尝试获取数据 IP 地址、国家/地区、州、位置等。但是,我仍然需要更多信息,例如...客户端系统名称、客户端操作系统和客户端时间戳。我如何使用 Javascript 获取所有这些信息。
代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Get User Details IP Address, city, country, state, latitude, longitude </title>
<script src="http://code.jquery.com/jquery-1.8.2.js" type="text/javascript"></script>
<script type="text/javascript">
var strip, strcountry, strcity, strregion, strlatitude, strlongitude, strtimezone
function GetUserInfo(data) {
alert(data.hostname);
strip = data.host;
strcountry = data.countryName;
strcity = data.city;
strregion = data.region;
strlatitude = data.latitude;
strlongitude = data.longitude;
strtimezone = data.timezone;
}
$(function() {
BindUserInfo();
})
function BindUserInfo() {
document.getElementById('lblIP').value = strip;
document.getElementById('lblCountry').value = strcountry;
document.getElementById('lblCity').value = strcity;
document.getElementById('lblregion').value = strregion;
document.getElementById('lbllatitude').value = strlatitude;
document.getElementById('lbllongitude').value = strlongitude;
document.getElementById('lbltimezone').value = strtimezone;
}
</script>
<script type="text/javascript" src="http://smart-ip.net/geoip-json?callback=GetUserInfo"></script>
</head>
<body>
<div>
<table>
<tr>
<td>
<input type="text" id="lblIP" value="" />
<input type="text" id="lblCountry" value="" />
<input type="text" id="lblCity" value="" />
<input type="text" id="lblregion" value="" />
<input type="text" id="lbllatitude" value="" />
<input type="text" id="lbllongitude" value="" />
<input type="text" id="lbltimezone" value="" />
</td>
</tr>
</table>
</div>
</body>
</html>
String userAgent = request.getHeader("User-Agent");
您可以从此网站获取所有用户代理值的完整列表,http://www.user-agents.org/
var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
并将 OSName 变量发送回服务器。
“有时”您可以使用 IE 来完成此操作,因为我已经在只有 IE 的 Intranet 上的内部应用程序中完成了此操作。尝试以下操作:
function GetComputerName()
{
try
{
var network = new ActiveXObject('WScript.Network');
// Show a pop up if it works
alert(network.computerName);
}
catch (e) { }
}
它可能需要也可能不需要在 IE 中进行一些特定的安全设置,以允许浏览器访问 ActiveX 对象。
如果您认为很复杂,可以使用 Fingerprintjs 库,它包含大部分信息,请尝试 device-uuid npm 包
`var du = new DeviceUUID().parse();
var dua = [
du.language,
du.platform,
du.os,
du.cpuCores,
du.isAuthoritative,
du.silkAccelerated,
du.isKindleFire,
du.isDesktop,
du.isMobile,
du.isTablet,
du.isWindows,
du.isLinux,
du.isLinux64,
du.isMac,
du.isiPad,
du.isiPhone,
du.isiPod,
du.isSmartTV,
du.pixelDepth,
du.isTouchScreen,
du.browser,
du.version,
du.source,
du.isBot
];
var allData = dua.concat(ip.ip);
var uuid = du.hashMD5(allData.join(':'));
this.setDeviceUUID(uuid);
`
在 JavaScript 中?只需实例化一个新的 Date 对象 现在=新日期(); 这将使用客户端的本地时间创建一个新的 Date 对象。