通过JavaScript以及ActiveX控件获得客户端的机器名

2016-02-19 16:15 54 1 收藏

有了下面这个通过JavaScript以及ActiveX控件获得客户端的机器名教程,不懂通过JavaScript以及ActiveX控件获得客户端的机器名的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

  目前为止,我尚没有碰到过类似的应用,或者说在需要实现类似功能的时候,我总是首先会想到如何利用客户端的IP地址来解决问题.

  不过今天有一个客户问了这个问题,原因是在做内网测试的时候,需要通过客户端的机器名来验证某些信息.

  着手这一个案例并做了一些简单的测试之后,我发现,以下一些在网络上常见的用来获得客户端计算机名的代码被证明是错误的:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

 1protected void Page_Load(object sender, EventArgs e)
 2{
 3    //获得服务器端的机器名
 4    Response.Write("System.Net.Dns.GetHostName(): ");
 5    Response.Write("b" + System.Net.Dns.GetHostName() + "/bbr /");
 6
 7    //获得服务器端的机器名
 8    Response.Write("System.Environment.MachineName: ");
 9    Response.Write("b" + System.Environment.MachineName + "/bbr /");
10
11    //在Visual Studio下运行获得当前登陆用户
12    //在IIS下运行,获得的值为空
13    Response.Write("Page.User.Identity.Name: ");
14    Response.Write("b" + Page.User.Identity.Name + "/bbr /");
15
16    //获得客户端的IP地址
17    Response.Write("Page.Request.UserHostName: ");
18    Response.Write("b" + Page.Request.UserHostName + "/bbr /");
19}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  似乎是基于某些安全的因素,Framwork并没有给出可以获得客户端机器信息的类及方法.如果这是真的,那么我们便只能通过客户端的JavaScript代码以及ActiveX控件来实现这一功能了.在努力搜寻了一段时间之后,我找到了如下的解决方案:

 1html
 2head
 3    titleWMI Scripting HTML/title
 4    script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript"
 5         document.forms[0].txtMACAddr.value=unescape(MACAddr);
 6         document.forms[0].txtIPAddr.value=unescape(IPAddr);
 7         document.forms[0].txtDNSName.value=unescape(sDNSName);
 8    /script
 9
10    script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript"
11        if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
12        {
13            if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
14                MACAddr = objObject.MACAddress;
15
16            if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
17                IPAddr = objObject.IPAddress(0);
18
19            if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
20                sDNSName = objObject.DNSHostName;
21        }
22    /script
23
24/head
25body
26    object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" VIEWASTEXT/object
27    object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo"/object
28
29    script LANGUAGE="JScript"
30        var service = locator.ConnectServer();
31        var MACAddr ;
32        var IPAddr ;
33        var DomainAddr;
34        var sDNSName;
35        service.Security_.ImpersonationLevel=3;
36        service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
37    /script
38
39    form method="POST" action="NICPost.asp" id="formfoo" name="formbar"
40        input type="text"  name="txtMACAddr"
41        input type="text"  name="txtIPAddr"
42        input type="text"  name="txtDNSName"
43    /form
44/body
45/html
46

  测试后发现,这一解决方案不仅能够获得客户端的机器名,同时还给出了客户端机器的MAC地址,以及客户端机器所在的内网IP地址(比如192.168.0.100).只是在运行该页面的时候,浏览器会给出不安全ActiveX控件的提示,并允许客户端禁止ActiveX控件的运行,不过我相信,这已经可以满足大部分需要用到这一功能的情景了.

来源:http://www.tulaoshi.com/n/20160219/1611471.html

延伸阅读
通过飞信PC客户端使用秀动传情 通过会话窗口的秀动传情,用户可以把各类动漫、表情、动态图片等发送到好友的会话窗口上,对好友进行传情达意、恶搞整蛊。 在与某位好友的会话窗口中,点击发送区工具栏中的秀动传情图标,打开秀动传情窗口,在最新、热门、免费标签中选择您要发送的秀动传情,点击即可发送。 注:会员标签中的...
智能客户端(SmartClient)摘要本文主要讨论基于企业环境的客户端应用程序模型,由于本人曾经从事过传统的客户端/服务器两层结构应用程序和基于.net平台的多层结构应用程序的开发,因此本文将着重描述.net平台上的智能客户端应用程序模型,并根据一般的企业应用系统的需求来一步一步构造出一个较为完整的客户端软件框架。目录简介 概述 定义 .net...
飞信PC客户端如何获得版本号 获得飞信PC客户端的版本号,有以下两个方法: 1.成功登录飞信PC客户端后,点击主菜单→帮助→关于飞信,打开关于飞信窗口,在这里,可以看到当前PC客户端的版本号。 2.如果无法正常登录,请进入您的飞信PC客户端安装目录,找到文件fetion.exe,查看该文件的属性,在属性中可以看到当前PC...
前段时间发了个 ZUNE的不清晰的图,这次终于截到了清晰的大图,赶紧放上来给大家分享。
代码如下: package com.yswc.dao.sign; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; /**  *  * 获取MAC地址  *  * @author  *  * 2011-12  *  */ public class GetMacAddress { public static ...

经验教程

995

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部