JS获取IP、MAC和主机名的五种方法


Posted in Javascript onNovember 14, 2013

今天在搞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 = null; var ip = null; try{ oSetting = new ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if (ip.length == 0){ return "没有连接到Internet"; } oSetting = null; }catch(e){ return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>") </script> 
</BODY> 
</HTML>

方法二(所有的平台及浏览器):
获取客户端处在网络中的IP,前提是客户得联网。
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>JavaScript获取客户端IP[利用新浪接口]</title> 
</head> 
<body> 
<script type="text/javascript" src="http://counter.sina.com.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("计算机名 = "+ wshNetwork.ComputerName+"<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-00600806D9B6" id="locator" style="display:none;visibility:hidden"></object> 
<object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;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.MACAddress; 
if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined") 
sDNSName = objObject.DNSHostName; 
} 
</script> <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript"> 
myForm.macAddress.value=sMacAddr; 
myForm.ipAddress.value=sIPAddr; 
myForm.hostName.value=sDNSName; 
</script>
Javascript 相关文章推荐
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
JS下拉缓冲菜单示例代码
Aug 30 Javascript
AngularJS  双向数据绑定详解简单实例
Oct 20 Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
vue2.X组件学习心得(新手必看篇)
Jul 05 Javascript
基于webpack 实用配置方法总结
Sep 28 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
vue $set 给数据赋值的实例
Nov 09 Javascript
Vue SSR 即时编译技术的实现
May 06 Javascript
vue setInterval 定时器失效的解决方式
Jul 30 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 #Javascript
js截取小数点后几位的写法
Nov 14 #Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 #Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 #Javascript
JQuery实现倒计时按钮具体方法
Nov 14 #Javascript
jquery动态增加删除表格行的小例子
Nov 14 #Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 #Javascript
You might like
基于mysql的论坛(4)
2006/10/09 PHP
php addslashes 函数详细分析说明
2009/06/23 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
php字符串函数学习之substr()
2015/03/27 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
网页javascript精华代码集
2007/01/24 Javascript
js实现的网页颜色代码表全集
2007/07/17 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
CAD制图人员的自荐信
2014/02/07 职场文书
竞选班委演讲稿
2014/04/28 职场文书
2014年保育员工作总结
2014/12/02 职场文书
运动会1000米加油稿
2015/07/21 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
Elasticsearch 索引操作和增删改查
2022/04/19 Python