对用户的 ip 和 mac 地址进行验证,这里用到获取客户端ip和mac地址的两个方法,留存。
1.获取客户端ip地址( 这个必须从客户端传到后台): jsp页面下,很简单,request.getRemoteAddr() ; 因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换 public String getMyIP() {
Java代码
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){
Java代码 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;