原来在XP上能通过获取到IP,但是到了WIN7上就不行了,原来的获取方法:
<script language="JavaScript">
function GetLocalIPAddr(){
var oSetting = null;
var ip = null;
try{
oSetting = new ActiveXObject("rcbdyctl.Setting");
ip = oSetting.GetIPAddress;
alert(ip);
if (ip.length == 0){
return "没有连接到Internet";
}
oSetting = null;
}catch(e){
return ip;
}
return ip;
}
alert(GetLocalIPAddr())
</script>
在网上找了一下其他获取IP的方法
这个直接通过Js来执行ipconfig命令获取IP,但是安全性能是不是较低啊
http://topic.csdn.net/t/20041010/12/3440117.html这个是通过ActiveX控件来获取的
http://blog.csdn.net/nwf5d/archive/2010/06/29/5702581.aspx<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
// document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
alert(unescape(IPAddr));
// document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
//if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
//MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
//if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
//sDNSName = objObject.DNSHostName;
}
</SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=NICPost.asp method=post>
<INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr>
<INPUT value=192.168.0.2 name=txtIPAddr>
<INPUT value=typ name=txtDNSName>
</FORM>
</BODY>
</HTML> 这个经测试在WIN7上是可用的,但是对JS不熟悉,对这段JS似懂非懂,有朋友指导一下如何将这部分封装成类似GetLocalIPAddr()一样的函数么?另外顺便也帮忙解析一下这段JS,谢谢
<script language="JavaScript">
function GetLocalIPAddr(){
var oSetting = null;
var ip = null;
try{
oSetting = new ActiveXObject("rcbdyctl.Setting");
ip = oSetting.GetIPAddress;
alert(ip);
if (ip.length == 0){
return "没有连接到Internet";
}
oSetting = null;
}catch(e){
return ip;
}
return ip;
}
alert(GetLocalIPAddr())
</script>
在网上找了一下其他获取IP的方法
这个直接通过Js来执行ipconfig命令获取IP,但是安全性能是不是较低啊
http://topic.csdn.net/t/20041010/12/3440117.html这个是通过ActiveX控件来获取的
http://blog.csdn.net/nwf5d/archive/2010/06/29/5702581.aspx<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
// document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
alert(unescape(IPAddr));
// document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
//if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
//MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
//if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
//sDNSName = objObject.DNSHostName;
}
</SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=NICPost.asp method=post>
<INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr>
<INPUT value=192.168.0.2 name=txtIPAddr>
<INPUT value=typ name=txtDNSName>
</FORM>
</BODY>
</HTML> 这个经测试在WIN7上是可用的,但是对JS不熟悉,对这段JS似懂非懂,有朋友指导一下如何将这部分封装成类似GetLocalIPAddr()一样的函数么?另外顺便也帮忙解析一下这段JS,谢谢
<script language="javascript">
<!--function GetAdapterInfo() {var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer("."); //连接本机服务器
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
//查询使用SQL标准
var e = new Enumerator (properties);for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("Caption:" + p.Caption + " "); //网卡描述,也可以使用Description
document.write("IP:" + p.IPAddress(0) + " ");//IP地址为数组类型,子网俺码及默认网关亦同
document.write("Net MASK:" + p.IPSubnet(0) + " ");
document.write("Default gateway:" + p.DefaultIPGateway(0) + " ");
document.write("MAC:" + p.MACAddress + " "); //网卡物理地址
document.write("<hr>");
}}GetAdapterInfo();//-->
</script> 如果想获取一个网卡下面的所有IP,那可以:
var ipArray = p.IPAddress.toArray();
var i=0;
for (i=0; i<ipArray.length; i++)
{
alert(ipArray[i]);
}
满意结贴提示分数分配不对;想无满意结贴提示要24小时后- -!!!