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 相关文章推荐
js图片实时加载提供网页打开速度
Sep 11 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
解决vue动态为数据添加新属性遇到的问题
Sep 18 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
详解vue中移动端自适应方案
May 05 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
May 13 Javascript
深入理解令牌认证机制(token)
Aug 22 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python 备份程序代码实现
2017/03/06 Python
python如何修改装饰器中参数
2018/03/20 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
python随机数分布random测试
2018/08/27 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
大学生英语演讲稿
2014/04/24 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
教师个人教学反思
2016/02/23 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python