取客户端MAC地址方法

一、后台通过IP去MAC地址

1.获取客户端ip地址( 这个必须从客户端传到后台):    jsp页面下,很简单,request.getRemoteAddr() ;    因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换    public String getMyIP() {         try {             FacesContext fc = FacesContext.getCurrentInstance();             HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();             return request.getRemoteAddr();         }         catch (Exception e) {             e.printStackTrace();         }         return "";     }

2.获取客户端mac地址     调用window的命令,在后台Bean里实现 通过ip来获取mac地址。方法如下:

    public String getMACAddress(String ip){         String str = "";         String macAddress = "";         try {             Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);             InputStreamReader ir = new InputStreamReader(p.getInputStream());             LineNumberReader input = new LineNumberReader(ir);             for (int i = 1; i < 100; i++) {                 str = input.readLine();                 if (str != null) {                     if (str.indexOf("MAC Address") > 1) {                         macAddress = str.substring(str.indexOf("MAC Address") + 14, str.length());                         break;                     }                 }             }         } catch (IOException e) {             e.printStackTrace(System.out);         }         return macAddress;     }

 

二、客户端JS取

<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);  document.forms[0].txtDNSName.value=unescape(sDNSName); </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:00:00:00:00:00 name=txtMACAddr> <INPUT value=0.0.0.0 name=txtIPAddr> <INPUT value=typ name=txtDNSName> </FORM> </BODY> </HTML>

 

三、通过applet来和servlet通信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值