我知道如何获取 IP 地址,但有没有办法让我获取客户端机器名称?
addr = request.servervariables("REMOTE_ADDR")
你不能。HTTP 不传输该信息。Windows 网络可以,这不是 HTTP。
对我有用的唯一方法是让一些本地 VBScript 发回信息 - 这仅适用于 IE。
因为我在公司内部网工作,我知道每个人都在使用 IE,所以这是一个可行的解决方案。在最近的一次更新中,我最终确实将一些代码(特别是发回机器名称)迁移到了已部署的 HTA(HTML 应用程序)。由于 HTA 仅在 Windows 上工作,并且始终使用 IE 渲染引擎,它消除了我们对人们可能在非 IE 浏览器上访问它的一些担忧。
在带有.hta
扩展名的文本文件中,我们有以下内容将机器名称发送回服务器:
<HTML>
<HEAD>
<TITLE>Full Name of App</TITLE>
<HTA:APPLICATION ID="AppID" APPLICATIONNAME="AppID" SHOWINTASKBAR="yes"
SINGLEINSTANCE = "yes" WINDOWSTATE="maximize" ICON="http://example.com/favicon.ico">
<STYLE TYPE="text/css">
html, body {margin:0px;padding:0px;}
iframe {margin:0px;}
</STYLE>
</HEAD>
<BODY scroll="no">
<script type="text/vbscript">
Set objNet = CreateObject("WScript.NetWork")
document.write("<iframe id=""frmClient"" trusted=""yes"" src=""http://example.com/projects/projectname/default.asp?Workstation=" & objNet.ComputerName & """ WIDTH=""100%"" HEIGHT=""100%""></IFRAME>")
Set objNet = Nothing
</script>
</BODY>
</HTML>
显然,这可能对您不起作用,具体取决于您可能使用或可能无法使用的内容 - 我想我会发布这个,以防它对我的使用有类似限制的人有所帮助。