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 相关文章推荐
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
FireFox中textNode分片的问题
Apr 10 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
js操作二级联动实现代码
Jul 27 Javascript
使用javascript过滤html的字符串(注释标记法)
Jul 08 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
深入了解JavaScript 防抖和节流
Sep 12 Javascript
Vue使用预渲染代替SSR的方法
Jul 02 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
php实现邮件发送并带有附件
2014/01/24 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
js left,right,mid函数
2008/06/10 Javascript
JavaScript Date对象使用总结
2009/05/14 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python 中的 else详解
2016/04/23 Python
python getopt详解及简单实例
2016/12/30 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
django解决订单并发问题【推荐】
2019/07/31 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
艺术系应届生的自我评价
2013/10/19 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
公务员考察材料
2014/12/23 职场文书
辩护意见书
2015/06/04 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python