Rss & SiteMap

搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp

搭建论坛是“搭建式”中文软件开发工具《搭建之星》、《网站·搭建者》技术交流的地方。
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请问:者能否获取客户端MAC地址?

1楼
pc_doctor 发表于:2009-11-9 20:18:01

WEB应用时,服务器端需要对客户端的MAC地址进行记录、识别是必须的一项。

请问:目前的搭建者能否实现之?

2楼
development 发表于:2009-11-9 21:05:46

并不简单,必须要用到"活动"件,可以参考下面的介绍:

javascript获取客户端网卡MAC地址和IP地址和计算机名

在做 B/S 结构的系统时,我们常常需要获取客户端的一些信息,如 IP 和 MAC ,以结合身份验证。 要获取服务器端的 MAC 很容易,但是要获取客户端的 MAC 的地址确要花费一翻心思,通常的做法是调用 Win32API 或直接调用 nbtstat 命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用 Javascript ,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。
具体实现的html和javascript如下:
<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>

<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</SCRIPT>

<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>

<FORM id="formfoo" name="formbar" action="index.do" method="post"><INPUT value="00-11-11-B4-52-EF" name="txtMACAddr"> <INPUT value="210.42.38.50" name="txtIPAddr"> <INPUT value="zhupan" name="txtDNSName"> </FORM></BODY></HTML>

其实最关键的还是用到两个ActiveX:
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
不过这两个ActiveX都是系统自带,不用去下载或注册。
3楼
pc_doctor 发表于:2009-11-9 21:57:47

谢谢development朋友的同感理解并即使回复和详解讲解。

但是,就是不知道你这个方法怎么才能融合和使用于搭建者之中?因为搭建者的参数接收有些独特,我等不易照此实施将客户端获取的数据传递与搭建者服务器保存,还望请development朋友抽时间做个者的实际运用实例出来大家学习。

谢谢为盼!!




4楼
pc_doctor 发表于:2009-11-11 12:55:04
以下是引用coco在2009-11-11 9:57:55的发言:
使用“javascript”构件应该可以,关键是如何转换 。

这就是问题的关键所在,一般不通过搭建者本身构件获取的参数数据很难被搭建者接收。

当然,这个命题本身有其难度,不在乎用什么方法(比如javascript),只要能在搭建者环境中实现。就通过三方来获取MAC地址的方法很多,但是不知道怎么才能融合进搭建者被搭建者所利用。

请admin也抽空帮大家研究一下,尽管搭建者本身一时难以实现,毕竟这是一个需求必须,哪怕是变通实现的。搞个实例出来大家也好举一反三的学习。


5楼
development 发表于:2009-11-11 13:43:48

这个吗,我来研究一下看看!

6楼
a377163 发表于:2009-12-1 21:12:44
以下是引用pc_doctor在2009-11-11 12:55:04的发言:

这就是问题的关键所在,一般不通过搭建者本身构件获取的参数数据很难被搭建者接收。

当然,这个命题本身有其难度,不在乎用什么方法(比如javascript),只要能在搭建者环境中实现。就通过三方来获取MAC地址的方法很多,但是不知道怎么才能融合进搭建者被搭建者所利用。

请admin也抽空帮大家研究一下,尽管搭建者本身一时难以实现,毕竟这是一个需求必须,哪怕是变通实现的。搞个实例出来大家也好举一反三的学习。


支持~~~~~最好是搞个实例~~我刚接触搭建者,退而求其次,请问目前能否实现获取客户端的ip地址?
7楼
ming1973 发表于:2009-12-1 22:02:12
这个是可以的,直接使用“客户端信息”构件就OK!
8楼
pc_doctor 发表于:2009-12-3 0:19:34
以下是引用ming1973在2009-12-1 22:02:12的发言:
这个是可以的,直接使用“客户端信息”构件就OK!

不可能吧,兄弟,你亲自测试过吗?

根本没有发现“客户端信息”构件有这个功能。

9楼
a377163 发表于:2009-12-27 19:24:41
以下是引用pc_doctor在2009-12-3 0:19:34的发言:

不可能吧,兄弟,你亲自测试过吗?

根本没有发现“客户端信息”构件有这个功能。

 

有这个构建 不过需要指定要获取的信息  我刚开始接触,不知道怎么指定

10楼
jsphp 发表于:2009-12-28 0:54:17

直接运行“得到IP地址”方法,就可以了;

不要奢望得到太多的东西,否则谁还敢上你的网站。

共10 条记录, 每页显示 10 条, 页签: [1]

搭建之星 网站·搭建者 Copyright © 2000 - 2011
Powered By Dvbbs Version 8.2.0
Processed in 0.09375 s, 3 queries.