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 相关文章推荐
滚动经典最新话题[prototype框架]下编写
Oct 03 Javascript
javascript之ESC(第二类混淆)
May 06 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
jquery退出each循环的写法
Feb 26 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 Javascript
Ajax跨域实现代码(后台jsp)
Jan 21 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
Oct 25 Javascript
Electron vue的使用教程图文详解
Jul 05 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
Feb 23 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分页示例代码
2007/03/19 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP错误处理函数
2016/04/03 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
css配合jquery美化 select
2013/11/29 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
js仿360开机效果
2019/12/26 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
python自动化测试之连接几组测试包实例
2014/09/28 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Python标准库之collections包的使用教程
2017/04/27 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
电子信息工程自荐信
2014/05/26 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
编写python程序的90条建议
2021/04/14 Python
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS