js如何获取客户端的js获取pc唯一标识识,比如mac地址

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
因为JS不能直接获取到手机端的MAC地址。
那么有什么别的方法能作为手机设备的唯一标识吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我认为js不能干这事,如果可以那就危险了,应该是要用一门服务端的语言获取,js请求服务端获得相关信息!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Math.floor(Math.random()
16.0).toString(16);
document.write(guid)
用 cookie 存起一个唯一码, 然后记录操作.
缺点 如果禁用 cookie 或者 清理 cookie, 储存的数据就没了.
'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);});
还有一个 canvas 标识库
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:nodesj如何获得客户端的mac地址呢?或者说如何区分客户端的唯一性 - CNode技术社区
积分: 1460
前某不知名公司项目总监,现某不知名电商平台产品总监,全能打杂。
请教大神nodejs如何获得客户端的mac地址。
或者说如何区分客户端的唯一性
WAN没办法获取mac地址的(除非客户端自己把mac地址加到http头)
在http/tcp的交互过程中是通过ip来通讯的,而mac地址是物理层的,每个数据包会先把mac地址解析成ip再发送
再LAN环境下,可以通过ARP协议来获取,简单的说就是每台计算机都有一个ip到mac的表,如果表里面有就直接返回,如果表里面没有,也只会在LAN环境下发广播来获取数据
你可以在客户端获取mac地址后加在http头里面返回
你可以运行一下arp -a或者看一眼这个/bevry/getmac
非常感谢。我试试看
getmac也仅限在客户端通过http传mac地址回去,没有办法直接通过分析socket获取的呢
我试了只能获得服务端的mac,无法获取到客户端的MAC。
有没有其他方案,其实获取的mac的目的就是为了区分客户端唯一性。
持续关注中,我也想知道怎么获取
试了网上说的很多方法只能获取到本地的。
换思路, 客户端mac除了activeX和扩展取不到, 而且就算客户放行兼杀软没做掉你让你取到, 也无法保证唯一性。
看来我白说啦,都说了只能获取LAN(局域网)的mac地址,广域网是不能获取的
.yokrie已经说的很清楚了 .
给你一个思路
.如果是你的&客户端&是浏览器的话. 你生成一个唯一的id,保存在cookie,localStorage或sessionStorage之类的地方 . 每次启动都读取一下id .然后干你想干的事 … …
回答的很详细很好
不好意思。哈哈。之前看的不是很仔细。
socket还没去接触过呢。不过你说的这个ID不会因为每次重启电脑而改变吗?
如果客户端断开连接,然后再次连接,id是会改变的
那其实也达不到效果,目标就是为了识别客户端机器。
目的是确定某一个用户,打开多个界面会有多个用户,不能确定唯一性,有办法确定mac吗 ,或者内网的ip也可以。
这个是不是要自己写个C++的扩展了?
目的是为了确认客户端唯一性,换句话说就是确认客户是不是用这一台PC在登陆。
恩,解决没有 ,我也想知道,我那个
的“临时”登陆用户,如果是同一局域网内,只能登陆一个,如果另一个登陆就会把前一个挤掉。
我不敢说是正确的啊,C++里面是可以获取到MAC地址的,然后通过这个C++的扩展,把MAC地址传给node
如何在客户端运行呢?
没有呢、没找到好的方案
说明问题要准确,你在寻找的是浏览器唯一性的解决方案。
你可以在Google里搜索:browser fingerprint js,有很多现成的JS库。例如,
工作原理就是根据每个浏览器的UA字符串、屏幕、语言、安装的插件等信息,计算出当前浏览器的一个唯一的hash值。根据,准确度达到94%。
这种方法不用在浏览器端存储任何信息,每次需要识别浏览器时,都是实时计算这个hash值。
为了提高准确度,你可以结合在cookie或者localStorage中存储唯一标识的方法,提高识别度。
不知道楼主找到好的解决方案没有,我这里也需要做客户端电脑登陆的判断,如果找到了好的解决方案 就共享下呗
暂时还没有呢
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的博客分类:
结构的系统时,我们常常需要获取客户端的一些信息,如
,以结合身份验证。
要获取服务器端的
很容易,但是要获取客户端的
的地址确要花费一翻心思,通常的做法是调用
或直接调用
命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用
Javascript
,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。具体实现的html和javascript如下:&HTML&&HEAD&&TITLE&WMI Scripting HTML&/TITLE&&META http-equiv=Content-Type content="text/ 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.MACA
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostN
&/SCRIPT&&META content="MSHTML 6.00." name=GENERATOR&&/HEAD&&BODY&&OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-B6 VIEWASTEXT&&/OBJECT&&OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223&&/OBJECT&&SCRIPT language=JScript&
var service = locator.ConnectServer();
var DomainA
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-B6 VIEWASTEXT&&/OBJECT&
&OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223&&/OBJECT&
不过这两个ActiveX都是系统自带,不用去下载或注册。
接下来的工作就是用脚本和ActiveX交互
浏览 38061
只支持ie,并且取的结果不一定是对的电脑上了 安装了 virtualbox ,取的mac地址是virtualbox的
浏览: 741559 次
来自: 上海
必须用ie浏览器
我也出现与楼上相同的问题。查了一些资料,描述的跟楼主的博文差不 ...
djlijian 写道最近也在研究redis,如何在项目中使用 ...
最近也在研究redis,如何在项目中使用呢?感觉网上的资料太少 ...
lz好人呀,谢谢分享!查看: 43395|回复: 0
js获取客户端网卡ip地址与mac地址
&p&&html& &head& &title&js获取客户端网卡ip地址与mac地址---bbs.it-home.org&/title& &/head& &body& &object classid=&clsid:76a64158-cb41-11d1-8b02-b6& id=&locator& style=&display:visibility:hidden&&&/object& &object classid=&clsid:75718c9a-f029-11d1-a1ac-00c04fb6c223& id=&foo& style=&display:visibility:hidden&&&/object& &form name=&myform&& &br/&mac地址:&input type=&text& name=&macaddress&& &br/&ip地址:&input type=&text& name=&ipaddress&& &br/&主机名:&input type=&text& name=&hostname&& &/form& &/body& &/html& &script language=&javascript&& var smacaddr=&&; var sipaddr=&&; var sdnsname=&&; var service = locator.connectserver(); service.security_.impersonationlevel=3; service.instancesofasync(foo, 'win32_networkadapterconfiguration'); &/script& &script for=&foo& event=&onobjectready(objobject,objasynccontext)& language=&jscript&& if(objobject.ipenabled != null && objobject.ipenabled != &undefined& && objobject.ipenabled == true){ if(objobject.ipenabled && objobject.ipaddress(0) !=null && objobject.ipaddress(0) != &undefined& && objobject.dnsserversearchorder!=null) sipaddr = objobject.ipaddress(0); if(objobject.macaddress != null &&objobject.macaddress != &undefined&) smacaddr = objobject. if(objobject.dnshostname != null &&objobject.dnshostname != &undefined&) sdnsname = objobject. } &/script&&/p&&p&&script for=&foo& event=&oncompleted(hresult,perrorobject, pasynccontext)& language=&jscript&& myform.macaddress.value= myform.ipaddress.value= myform.hostname.value= &/script&&/p&复制代码代码说明:
如果笔记本有多张网卡,会出现获取未联网或禁用网卡的信息。
解决办法:加限制条件:
objobject.dnsserversearchorder!=null
有了此限制条件后,就能取到联网客户端的网卡ip地址了。
注意,只能限制ie浏览器,而且activex必须要全部启用。
上一篇:下一篇:JS获取IP、MAC和主机名的五种方法
字体:[ ] 类型:转载 时间:
javascript获取客户端IP的小程序,下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,喜欢的朋友可以收藏下
今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码: 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000): 获取客户端IP。
代码如下: &HTML& &HEAD& &TITLE&GetLocalIP&/TITLE& &/HEAD& &BODY& 获取IP: &script language="JavaScript"& function GetLocalIPAddr(){ var oSetting = var ip = try{ oSetting = new ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPA if (ip.length == 0){ return "没有连接到Internet"; } oSetting = }catch(e){ } } document.write(GetLocalIPAddr()+"&br/&") &/script& &/BODY& &/HTML&
方法二(所有的平台及浏览器): 获取客户端处在网络中的IP,前提是客户得联网。
代码如下: &html& &head& &meta http-equiv="Content-Type" content="text/ charset=gb2312"& &title&JavaScript获取客户端IP[利用新浪接口]&/title& &/head& &body& &script type="text/javascript" src=".cn/ip/" charset="gb2312"&&/script& &!--获取接口数据,注意charset --& &script type="text/javascript"& document.writeln("IP地址:"+ILData[0]+"&br /&"); //输出接口数据中的IP地址 document.writeln("地址类型:"+ILData[1]+"&br /&"); //输出接口数据中的IP地址的类型 document.writeln("地址类型:"+ILData[2]+"&br /&"); //输出接口数据中的IP地址的省市 document.writeln("地址类型:"+ILData[3]+"&br /&"); //输出接口数据中的IP地址的 document.writeln("地址类型:"+ILData[4]+"&br /&"); //输出接口数据中的IP地址的运营商 &/script& &/body& &/html&
方法三(只针对IE且客户端的IE允许AcitiveX运行): 调用VBS脚本,获取计算机名(有些人不知道什么是计算机名,简单解释就是它是这台机器的物理名称而不是你在用的那个用户名)和登录的用户名。
代码如下: &HTML& &HEAD& &TITLE&WMI Scripting HTML&/TITLE& &/HEAD& &BODY& &script language=javascript& var WshShell =new ActiveXObject("WScript.Shell"); document.write("计算机名 = "+ WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")+"&br/&"); document.write("登录用户名 = "+ WshShell.ExpandEnvironmentStrings("%USERNAME%")+"&br/&"); &/script& &/BODY& &/HTML&
方法四(只针对IE且客户端的IE允许AcitiveX运行): 获取计算机名、登录的用户名和域名(如果你加入了域,显示你这台机器处在哪个域中)。
代码如下: &HTML& &HEAD& &TITLE&WMI Scripting HTML&/TITLE& &/HEAD& &BODY& &script language=javascript& var wshNetwork = new ActiveXObject("WScript.Network"); document.write("域名 = "+ wshNetwork.UserDomain+"&br/&"); document.write("计算机名 = "+ puterName+"&br/&"); document.write("登录用户名 = "+ wshNetwork.UserName+"&br/&"); &/script& &/BODY& &/HTML&
方法五(只针对IE且客户端的IE允许AcitiveX运行): 能够获取到局域网IP地址,本机的MAC,以及机器名(代码来源网络)。
代码如下: &html& &head& &title&&/title& &/head& &body& &object classid="CLSID:76A64158-CB41-11D1-8B02-B6" id="locator" style="display:visibility:hidden"&&/object& &object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:visibility:hidden"&&/object& &form name="myForm"& &br/&MAC地址:&input type="text" name="macAddress"& &br/&IP地址:&input type="text" name="ipAddress"& &br/&主机名:&input type="text" name="hostName"& &/form& &/body& &/html& &script language="javascript"& var sMacAddr=""; var sIPAddr=""; var sDNSName=""; var service = locator.ConnectServer(); service.Security_.ImpersonationLevel=3; service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration'); &/script& &script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript"& if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){ if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined") sIPAddr = objObject.IPAddress(0); if(objObject.MACAddress != null &&objObject.MACAddress != "undefined") sMacAddr = objObject.MACA if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined") sDNSName = objObject.DNSHostN } &/script& &script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript"& myForm.macAddress.value=sMacA myForm.ipAddress.value=sIPA myForm.hostName.value=sDNSN &/script&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 js获取浏览器唯一标识 的文章

 

随机推荐