这篇文章主要介绍了JS获取客户端IP地址、MAC和主机名的7个方法汇总,JS本身是不支持获取IP地址等信息的,本文通过其它方法实现,需要的朋友可以参考下
今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码:
一、使用JS获取客户端IP的几个方法
方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000)。
获取客户端IP代码:
复制代码 代码如下:
<
TITLE
>
GetLocalIP
</
TITLE
>
</
HEAD
>
获取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,前提是客户得联网。使用的是新浪接口。
复制代码 代码如下:
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=gb2312"
>
<
title
>
JavaScript获取客户端IP[利用新浪接口]
</
title
>
</
head
>
<
script
type
=
"text/javascript"
src
=
"http://counter.sina.com.cn/ip/"
charset
=
"gb2312"
>
</
script
>
<
script
type
=
"text/javascript"
>
document.writeln(
"IP地址:"
+ILData[
0
]+
"<br />"
);
document.writeln(
"地址类型:"
+ILData[
1
]+
"<br />"
);
document.writeln(
"地址类型:"
+ILData[
2
]+
"<br />"
);
document.writeln(
"地址类型:"
+ILData[
3
]+
"<br />"
);
document.writeln(
"地址类型:"
+ILData[
4
]+
"<br />"
);
</
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脚本,获取计算机名(有些人不知道什么是计算机名,简单解释就是它是这台机器的物理名称而不是你在用的那个用户名)和登录的用户名。
复制代码 代码如下:
<
TITLE
>
WMI Scripting HTML
</
TITLE
>
</
HEAD
>
<
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运行):
获取计算机名、登录的用户名和域名(如果你加入了域,显示你这台机器处在哪个域中)。
复制代码 代码如下:
<
TITLE
>
WMI Scripting HTML
</
TITLE
>
</
HEAD
>
<
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,以及机器名(代码来源网络)。
复制代码 代码如下:
<
title
>
</
title
>
</
head
>
<
object
classid
=
"CLSID:76A64158-CB41-11D1-8B02-00600806D9B6"
id
=
"locator"
style
=
";"
>
</
object
>
<
object
classid
=
"CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"
id
=
"foo"
style
=
";"
>
</
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
>
这篇文章主要介绍了JS获取客户端IP地址、MAC和主机名的7个方法汇总,JS本身是不支持获取IP地址等信息的,本文通过其它方法实现,需要的朋友可以参考下今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以
JS
获取
计算机
mac
地址以及
IP
的实现
方法
代码如下://这两个是系统里的ActiveX插件 用来
获取
ip
以及物理地址 <OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT> </OBJECT> <OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223> </OBJECT>
<SCR
IP
T language=
JS
cr
ip
t event=OnObjectReady(o
7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何
获取
主机名
和
IP地址
?(Visual C++编程 源代码)7.如何获
今天在搞
JS
(
javascript
)
获取
客户端
IP
的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX
获取
IP
等的
JS
脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码:
方法
一(只针对IE且
客户端
的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000):
获取
客户端
IP
。 代码如下: <HTML> <HEAD> <TITLE>GetLocal
IP
</TITLE> </HEAD> <BODY>
获取
IP
: <scr
ip
t language=”
JavaScript
if(typeofwindow!='undefined'){
varRTCPeerConnection=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;
if(RTCPeerConnection)(()=>{
varrtc=newRTCPeerConnection()
2,
js
取得
IP地址
的
方法
二
javascript
" type="text/
javascript
" src="http://fw.qq.com/
ip
address">
docum
1、
js
取得
IP地址
的
方法
一
<scr
ip
t src="http://pv.sohu.com/city
js
on?ie=utf-8">\</scr
ip
t>
<scr
ip
t type="text/
javascript
">
document.write(returnCitySN["c
ip
"]+','+returnCitySN["cname"])
</scr
ip
t>
2、
js
取得
IP地址
的
方法
二
<scr
ip
t language="
javascript
"
function get
IP
() {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.
ip
ify.org?format=
js
on");
xhr.onload = function() {
if (xhr.status === 200) {
resolve(
JS
ON.parse(xhr.responseText).
ip
);
} else {
reject("
获取
IP地址
失败");
xhr.onerror = function() {
reject("
获取
IP地址
失败");
xhr.send();
这段代码会向一个公共的
IP地址
查询API发送请求,然后返回
客户端
的
IP地址
。