JS获取客户端IP地址、MAC和主机名的7个方法汇总


Posted in Javascript onJuly 21, 2014

今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码:

一、使用JS获取客户端IP的几个方法

方法一(只针对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>

方法三(所有的平台及浏览器):
使用的搜狐接口

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>  

<script type="text/javascript">  

document.write(returnCitySN["cip"]+','+returnCitySN["cname"])  

</script>

方法四:太平洋电脑网IP查询接口:

http://whois.pconline.com.cn/?ip=0.0.0.0

把0.0.0.0换成IP地址,页面上还有其他无关内容,这些内容是告诉我们哪些接口可以调用、接口调用参数和使用方法等

通过上边的js接口调用就可以判断用于属于哪个城市,直接显示该城市的相关信息了,对于需要城市切换的网站,首次判断用户来源非常有帮助。

二、使用JS获取计算机名、MAC地址、局域网IP

方法一(只针对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温习的一些笔记 基础常用知识小结
Jun 22 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
纯js实现遮罩层效果原理分析
May 27 Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 Javascript
论JavaScript模块化编程
Mar 07 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
在 Node.js 中使用 async 函数的方法
Nov 17 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
vue车牌号校验和银行校验实战
Jan 23 Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
Jul 21 #Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 #Javascript
一个简单的jQuery计算器实现了连续计算功能
Jul 21 #Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 #Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 #Javascript
javascript定义变量时有var和没有var的区别探讨
Jul 21 #Javascript
JQuery中$(document)是什么意思有什么作用
Jul 21 #Javascript
You might like
PHP实现图片简单上传
2006/10/09 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
yii中widget的用法
2014/12/03 PHP
php获取远程文件大小
2015/10/20 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
Python将多份excel表格整理成一份表格
2018/01/03 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
会议邀请书范文
2014/02/02 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
中小学生学籍证明
2014/10/25 职场文书
优秀大学生申请书
2019/06/24 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
JavaScript文档对象模型DOM
2021/11/20 Javascript
Java实现给Word文件添加文字水印
2022/02/15 Java/Android