西安网站建设-西安网站制作-专业西安网站制作公司-「力洋网络」

西安力洋网络
  • 西安网站建设
  • 西安网站制作
  • 西安网站建设
  • JSF/JAVA根据IP获取客户端Mac地址

  • 发布者:本站 发布时间:2010/11/15 9:43:15
  • JSF/JAVA根据IP获取客户端Mac地址

        需要对用户的 ip 和 mac 地址进行验证,这里用到获取客户端ip和mac地址的两个方法,留存。

      1.获取客户端ip地址( 这个必须从客户端传到后台):

      jsp页面下,很简单,request.getRemoteAddr() ;

      因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换

      Java代码

      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地址。方法如下:

      Java代码

      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;

      }

      完整代码

      Java代码

      import java.io.IOException;

      import java.io.InputStreamReader;

      import java.io.LineNumberReader;

      public class GetMACAddress {

      public String getMACAddress(String ipAddress) {

      String str = "", strMAC = "", macAddress = "";

      try {

      Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress);

      InputStreamReader ir = new InputStreamReader(pp.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) {

      strMAC = str.substring(str.indexOf("MAC Address") + 14,

      str.length());

      break;

      }

      }

      }

      } catch (IOException ex) {

      return "Can't Get MAC Address!";

      }

      //

      if (strMAC.length() < 17) {

      return "Error!";

      }

      macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5)

      + ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11)

      + ":" + strMAC.substring(12, 14) + ":"

      + strMAC.substring(15, 17);

      //

      return macAddress;

     

  • 返回列表
    相关阅读
    更多
    深度挖掘网站的商用价值,化繁为简的设计,为企业找到直接有效的解决方案
    +86 (029) 88765320
    +86 15829904657
    地址:西安市太华北路369号
    万达广场4#23F P.C:7100001
    985224206@qq.com
    在线咨询: 985224206
    互联网协会成员单位
    西安力洋之星网络技术有限公司 | 版权所有
    Copyright 2008-2020 Liyang.Inc All Rights Reserved.
    Liyang.Inc