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 相关文章推荐
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
Aug 10 Javascript
jquery如何获取元素的滚动条高度等实现代码
Oct 19 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
May 24 Javascript
关于JS变量和作用域详解
Jul 28 Javascript
jQuery组件easyui基本布局实现代码
Aug 25 Javascript
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 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
通过文字传递创建的图形按钮
2006/10/09 PHP
PHP中的cookie
2006/11/26 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python中map的基本用法示例
2018/09/10 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
解释i节点在文件系统中的作用
2013/11/26 面试题
学徒工职责
2014/03/06 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
超市中秋节促销方案
2014/03/21 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
志愿者事迹材料
2014/12/26 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
施工安全协议书
2016/03/22 职场文书