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 相关文章推荐
javascript document.compatMode兼容性
Feb 23 Javascript
浅析ajax请求json数据并用js解析(示例分析)
Jul 13 Javascript
javascript获取选中的文本的方法代码
Oct 30 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
Dec 24 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
Feb 17 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
Jun 20 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
JavaScript实现tab栏切换效果
Mar 16 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 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/02/13 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
python使用scrapy解析js示例
2014/01/23 Python
python正则表达式中的括号匹配问题
2014/12/14 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
法学专业求职信
2014/07/15 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
政工师工作总结2015
2015/05/26 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android