<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>JavaScript获取客户端IP</title><script type="text/javascript" language="javascript"><!--function GetLocalIPAddress()
{
var obj =null;
var rslt ="";
try
{
obj =new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
obj =null;
}
catch(e)
{
//异常发生 }
return rslt;
}
function getMac(){
var locator =new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled =True");
var e =new Enumerator (properties);
{
var p = e.item();
var mac = p.MACAddress;
return mac
}
}
//-->function init () {
var ip = GetLocalIPAddress();
var mac = getMac();
fm.clientIP.value = ip;
fm.clientMAC.value = mac;
}
</script></head><body onload="init();"><form name = 'fm'>
通过JavaScript获取的IP信息:<input type ='text' name = 'clientIP'><br>
通过JavaScript获取的MAC信息:<input type='text'name = 'clientMAC'>
通过JSP获取的IP信息:<%= request.getRemoteAddr() %></form></body></html>
在做 B/S 结构的系统时,我们常常需要获取客户端的一些信息,如 IP 和 MAC ,以结合身份验证。 要获取服务器端的 MAC 很容易,但是要获取客户端的 MAC 的地址确要花费一翻心思,通常的做法是调用 Win32API 或直接调用 nbtstat 命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用 Javascript ,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。 具体实现的html和javascript如下: