精华内容
下载资源
问答
  • 2021-06-11 12:21:10

    获取访问者MAC地址

    WMI Scripting HTML

    document.forms[0].txtMACAddr.value=unescape(MACAddr);

    document.forms[0].txtIPAddr.value=unescape(IPAddr);

    document.forms[0].txtDNSName.value=unescape(sDNSName);

    //document.formbar.submit();

    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;

    }

    var service = locator.ConnectServer();

    var MACAddr ;

    var IPAddr ;

    var DomainAddr;

    var sDNSName;

    service.Security_.ImpersonationLevel=3;

    service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');

    但需要对方的IE浏览器设置为最低,添加可信任站点,才能顺利读出。不知道有没有其他的方式能够获取访问者MAC地址而不需要这么低的安全级别。

    更多相关内容
  • 本文给大家汇总介绍了下使用java实现获取客户端用户MAC地址的方法,当然最后一种更全面一些,有需要的小伙伴们可以根据需求自由选择。
  • $mac_addr = “”; @exec(“arp -a”,$return_array); foreach($return_array as $value) { if(strpos($value,$_SERVER[“HTTP_CLIENT_IP”]) !== false && preg_match(“/(:?[0-9a-f]{2}[:-]){5}[0-9a-f]{...
  • 本篇文章主要介绍了JAVA如何获取客户端IP地址MAC地址非常具有实用价值,这里整理了详细的代码,需要的朋友可以参考下
  • 获取用户请求IP地址 根据IP地址获取mac地址
  • 主要介绍了php实现获取局域网所有用户的电脑IP和主机名、及mac地址,非常实用,需要的朋友可以参考下
  • java 获取用户MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户MAC地址方法: 方法一:将本机地址与局域网内其他机器区分开来 /**...

    java 获取用户的MAC地址多种方法实例详解

    这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下

    java实现获取用户的MAC地址方法:

    方法一:将本机地址与局域网内其他机器区分开来

    /**
      * 根据IP地址获取mac地址
      * @param ipAddress 127.0.0.1
      * @return
      * @throws SocketException
      * @throws UnknownHostException
      */
     public static String getLocalMac(String ipAddress) throws SocketException,
       UnknownHostException {
      // TODO Auto-generated method stub
      String str = "";
      String macAddress = "";
      final String LOOPBACK_ADDRESS = "127.0.0.1";
      // 如果为127.0.0.1,则获取本地MAC地址。
      if (LOOPBACK_ADDRESS.equals(ipAddress)) {
       InetAddress inetAddress = InetAddress.getLocalHost();
       // 貌似此方法需要JDK1.6。
       byte[] mac = NetworkInterface.getByInetAddress(inetAddress)
         .getHardwareAddress();
       // 下面代码是把mac地址拼装成String
       StringBuilder sb = new StringBuilder();
       for (int i = 0; i < mac.length; i++) {
        if (i != 0) {
         sb.append("-");
        }
        // mac[i] & 0xFF 是为了把byte转化为正整数
        String s = Integer.toHexString(mac[i] & 0xFF);
        sb.append(s.length() == 1 ? 0 + s : s);
       }
       // 把字符串所有小写字母改为大写成为正规的mac地址并返回
       macAddress = sb.toString().trim().toUpperCase();
       return macAddress;
      } else {
       // 获取非本地IP的MAC地址
       try {
        System.out.println(ipAddress);
        Process p = Runtime.getRuntime()
          .exec("nbtstat -A " + ipAddress);
        System.out.println("===process=="+p);
        InputStreamReader ir = new InputStreamReader(p.getInputStream());      
        BufferedReader br = new BufferedReader(ir);    
        while ((str = br.readLine()) != null) {
         if(str.indexOf("MAC")>1){
          macAddress = str.substring(str.indexOf("MAC")+9, str.length());
          macAddress = macAddress.trim();
          System.out.println("macAddress:" + macAddress);
          break;
         }
        }
        p.destroy();
        br.close();
        ir.close();
       } catch (IOException ex) {
       }
       return macAddress;
      }
     }
    

    方法二:

    package com.alpha.test;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.LineNumberReader; 
    public class GetMac { 
      /**
       * java获取客户端网卡的MAC地址
       * 
       * @param args
       */
      public static void main(String[] args) {
        GetMac get = new GetMac();
        System.out.println("1="+get.getMAC());
        System.out.println("2="+get.getMAC("127.0.0.1"));
      } 
      // 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 getMAC() {
        String mac = null;
        try {
          Process pro = Runtime.getRuntime().exec("cmd.exe /c ipconfig/all"); 
          InputStream is = pro.getInputStream();
          BufferedReader br = new BufferedReader(new InputStreamReader(is));
          String message = br.readLine(); 
          int index = -1;
          while (message != null) {
            if ((index = message.indexOf("Physical Address")) > 0) {
              mac = message.substring(index + 36).trim();
              break;
            }
            message = br.readLine();
          }
          System.out.println(mac);
          br.close();
          pro.destroy();
        } catch (IOException e) {
          System.out.println("Can't get mac address!");
          return null;
        }
        return mac;
      }
      // 运行速度【慢】
      public String getMAC(String ip) {
        String str = null;
        String macAddress = null;
        try {
          Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);
          InputStreamReader ir = new InputStreamReader(p.getInputStream());
          LineNumberReader input = new LineNumberReader(ir);
          for (; true;) {
            str = input.readLine();
            if (str != null) {
              if (str.indexOf("MAC Address") > 1) {
                macAddress = str
                    .substring(str.indexOf("MAC Address") + 14);
                break;
              }
            }
          }
        } catch (IOException e) {
          e.printStackTrace(System.out);
          return null;
        }
        return macAddress;
      }
    }
    

    方法三:精简一些

    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.LineNumberReader;
    public class MACAddress {
     String ip;
     String mac;
     public MACAddress (String ip){
     this.ip = ip;
     }
     public MACAddress (){
     this.ip = "0.0.0.0";
     }
     public String getMac(){
     try {
     Process p = Runtime.getRuntime().exec("arp -n");
      InputStreamReader ir = new InputStreamReader(p.getInputStream());
      LineNumberReader input = new LineNumberReader(ir);
      p.waitFor();
      boolean flag = true;
      String ipStr = "(" + this.ip + ")";
      while(flag) {
      String str = input.readLine();
      if (str != null) {
       if (str.indexOf(ipStr) > 1) {
       int temp = str.indexOf("at");
       this.mac = str.substring(
       temp + 3, temp + 20);
       break;
       }
      } else
      flag = false;
      }
     } catch (IOException | InterruptedException e) {
      e.printStackTrace(System.out);
     }
     return this.mac;
     }
     public void setIp(String ip){
     this.ip = ip;
     }
    }
    

    最后要放大招了,小伙伴们看仔细哦

    首先要说的是:本方法可以支持外网机器的mac地址获取。

    以前弄了一个只能访问局域网。 有防火墙就访问不了, 但是这个不用担了。
    测试了百度的ip,已经可以获得mac地址

    java通过ip获取mac地址-封ip封mac地址

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern; 
    /**
    * 获取MAC地址
    * @author
    * 2011-12
    */
    public class GetMacAddress {
      public static String callCmd(String[] cmd) { 
       String result = ""; 
       String line = ""; 
       try { 
        Process proc = Runtime.getRuntime().exec(cmd); 
        InputStreamReader is = new InputStreamReader(proc.getInputStream()); 
        BufferedReader br = new BufferedReader (is); 
        while ((line = br.readLine ()) != null) { 
        result += line; 
        } 
       } 
       catch(Exception e) { 
        e.printStackTrace(); 
       } 
       return result; 
      }
      /** 
      * 
      * @param cmd 第一个命令 
      * @param another 第二个命令 
      * @return 第二个命令的执行结果 
      */
      public static String callCmd(String[] cmd,String[] another) { 
       String result = ""; 
       String line = ""; 
       try { 
        Runtime rt = Runtime.getRuntime(); 
        Process proc = rt.exec(cmd); 
        proc.waitFor(); //已经执行完第一个命令,准备执行第二个命令 
        proc = rt.exec(another); 
        InputStreamReader is = new InputStreamReader(proc.getInputStream()); 
        BufferedReader br = new BufferedReader (is); 
        while ((line = br.readLine ()) != null) { 
         result += line; 
        } 
       } 
       catch(Exception e) { 
        e.printStackTrace(); 
       } 
       return result; 
      }
      /** 
      * 
      * @param ip 目标ip,一般在局域网内 
      * @param sourceString 命令处理的结果字符串 
      * @param macSeparator mac分隔符号 
      * @return mac地址,用上面的分隔符号表示 
      */
      public static String filterMacAddress(final String ip, final String sourceString,final String macSeparator) { 
       String result = ""; 
       String regExp = "((([0-9,A-F,a-f]{1,2}" + macSeparator + "){1,5})[0-9,A-F,a-f]{1,2})"; 
       Pattern pattern = Pattern.compile(regExp); 
       Matcher matcher = pattern.matcher(sourceString); 
       while(matcher.find()){ 
        result = matcher.group(1); 
        if(sourceString.indexOf(ip) <= sourceString.lastIndexOf(matcher.group(1))) { 
         break; //如果有多个IP,只匹配本IP对应的Mac. 
        } 
       }  
       return result; 
      }   
      /** 
      * *获取windows的mac
      * @param ip 目标ip 
      * @return Mac Address 
      * 
      */
      public static String getMacInWindows(final String ip){ 
       String result = ""; 
       String[] cmd = { 
         "cmd", 
         "/c", 
         "ping " + ip 
         }; 
       String[] another = { 
         "cmd", 
         "/c", 
         "arp -a"
         }; 
       String cmdResult = callCmd(cmd,another); 
       result = filterMacAddress(ip,cmdResult,"-"); 
       return result; 
      }  
      /** 
      * 获取linux的mac
      * @param ip 目标ip 
      * @return Mac Address 
      * 
      */
      public static String getMacInLinux(final String ip){ 
       String result = ""; 
       String[] cmd = { 
         "/bin/sh", 
         "-c", 
         "ping " + ip + " -c 2 && arp -a"
         }; 
       String cmdResult = callCmd(cmd); 
       result = filterMacAddress(ip,cmdResult,":"); 
       return result; 
      }  
      /**
      * 获取MAC地址 
      * @return 返回MAC地址
      */
      public static String getMacAddress(String ip){
       String macAddress = "";
       macAddress = getMacInWindows(ip).trim();
       if(macAddress==null||"".equals(macAddress)){
        macAddress = getMacInLinux(ip).trim();
       }
       return macAddress;
      }
      //测试
      public static void main(String[] args) {   
       System.out.println(getMacAddress("220.181.111.148"));
      }
     }
    

    希望本篇文章可以给您帮助!!!

    展开全文
  • /*** 取客户端MAC地址* @author huangwg 2014-06-26*/public static String getMACAddress(HttpServletRequest request) {String macAddress = "";String ip = getClientIPAddress(request);Properties props = ...

    /**

    * 取客户端MAC地址

    * @author huangwg 2014-06-26

    */

    public static String getMACAddress(HttpServletRequest request) {

    String macAddress = "";

    String ip = getClientIPAddress(request);

    Properties props = System.getProperties();

    if(props.get("os.name").toString().contains("Window")){//判断操作系统

    if(ip.equals("127.0.0.1")){//本机的IP地址查询不了,要转成192.xxx.xxx.xxx的形式

    InetAddress addr = null;

    try {

    addr = InetAddress.getLocalHost();

    ip=addr.getHostAddress().toString();

    } catch (UnknownHostException e) {

    ip = "127.0.0.1";

    }

    }

    String str = "";

    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.contains("MAC Address")) {

    macAddress = str.substring(str.indexOf("MAC Address") + 14, str.length());

    break;

    }else if(str.contains("MAC 地址")){//有的机器会显示中文

    macAddress = str.substring(str.indexOf("MAC 地址") + 9, str.length());

    break;

    }

    }

    }

    } catch (IOException e) {

    return "";

    }

    } else {

    try {

    Runtime.getRuntime().exec("ping -c1 " + ip);

    Process p = Runtime.getRuntime().exec(

    new String[] { "/bin/sh", "-c", "arp | grep " + ip + " | awk '{print $3}'" });

    InputStreamReader ir = new InputStreamReader(p.getInputStream());

    LineNumberReader input = new LineNumberReader(ir);

    macAddress = input.readLine();

    } catch (IOException e) {

    return "";

    }

    }

    return macAddress;

    }

    在网上找到了两种方案,一种是通过js来获取,但是由于IE安全性的问题会有弹出提示框,让客户设备很麻烦所以放弃了。

    一种是能过java代码,在网上只找到在window下的,没有Linux的,所以改良了一下。

    展开全文
  • Js获取客户端MAC地址

    2013-12-10 16:26:46
    单点登录时需要获取用户的电脑IP或mac地址来进行单点登录验证。
  • Java获取客户端的mac地址

    千次阅读 2022-03-07 17:21:23
    Java获取客户端的mac地址

    我是小韩,这一次和大家分享一下如何获取客户端的mac地址,在开发中,我们会遇到想进行主机安全的认证,简单一点的就是通过mac地址来认证,不是这台电脑的用户不允许登录,可以通过添加自己允许的mac进行认证。

    步骤就是先获取到登录电脑的ip,然后通过ip来计算出电脑的mac地址,还是比较简单的,话不多说,上图

    1、先获取到登录电脑的ip地址。

    这些都是死格式,不用去修改什么,直接粘贴到类里面,进行使用就可以了,上代码

    public String extractClientIp(HttpServletRequest request) {
       String ip = null;
       //X-Forwarded-For:Squid 服务代理
       String ipAddresses = request.getHeader("X-Forwarded-For");
       if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
          //Proxy-Client-IP:apache 服务代理
          ipAddresses = request.getHeader("Proxy-Client-IP");
       }
       if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
          //WL-Proxy-Client-IP:weblogic 服务代理
          ipAddresses = request.getHeader("WL-Proxy-Client-IP");
       }
       if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
          //HTTP_CLIENT_IP:有些代理服务器
          ipAddresses = request.getHeader("HTTP_CLIENT_IP");
       }
       if (ipAddresses == null || ipAddresses.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
          //X-Real-IP:nginx服务代理
          ipAddresses = request.getHeader("X-Real-IP");
       }
       //有些网络通过多层代理,那么获取到的ip就会有多个,一般都是通过逗号(,)分割开来,并且第一个ip为客户端的真实IP
       if (ipAddresses != null && ipAddresses.length() != 0) {
          ip = ipAddresses.split(",")[0];
       }
       //还是不能获取到,最后再通过request.getRemoteAddr();获取
       if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ipAddresses)) {
          ip = request.getRemoteAddr();
       }
       return ip;
    }

    2、接下来就是通过获取到的ip地址再获取到mac地址,也是比较简单的,直接使用就可以了

    这个基本上也是死格式,直接使用就可以了,话不多说,上代码

    public String getMacAddrByIp(String ip) {
        String macAddr = null;
        try {
            Process process = Runtime.getRuntime().exec("nbtstat -a " + ip);
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(process.getInputStream()));
            Pattern pattern = Pattern.compile("([A-F0-9]{2}-){5}[A-F0-9]{2}");
            Matcher matcher;
            for (String strLine = br.readLine(); strLine != null;
                 strLine = br.readLine()) {
                matcher = pattern.matcher(strLine);
                if (matcher.find()) {
                    macAddr = matcher.group();
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(macAddr);
        return macAddr;
    }

    这基本上就是Java如何获取客户端的mac地址了,获取出来后,那还不是你想怎么处理就怎么处理么!!

    但是在这里面有一个小bug,就是这个程序在哪台电脑上部署,部署程序这台电脑是登录不上去了,即使你把这个电脑的mac地址允许通过也不行,这是因为你在用本机访问你自己的程序时,使用的是127.0.0.1这个地址,这里出现了通过127.0.0.1这个地址是取不到mac地址的,所以大家使用的时候一定要注意哦!最简单的,在一个局域网内,用两个电脑就可以了,接下来我会查阅资料去填补这个问题的

    如果大家有看不懂的,不明白的,请私信或者评论,小韩看到会第一时间回复大家,谢谢,谢谢

    我是小韩,再见!!!

     

     

    展开全文
  • Javascript获取Mac地址

    千次阅读 2021-06-13 10:44:14
    获取mac地址functionMacInfo(){//访问到WbemScripting对象varlocator=newActiveXObject("WbemScripting.SWbemLocator");//访问本地电脑varservice=locator.ConnectServer(".");//获取我们需要的对象的记录集...
  • 记Java如何获取MAC地址

    千次阅读 2022-04-17 22:12:31
    IP地址MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 ,通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号...
  • Android 违规获取用户隐私(获取MAC地址)整改

    万次阅读 热门讨论 2020-12-31 10:13:23
    前几天,收到公司App违规收取用户隐私的邮件,说是存在收集设备MAC地址的行为。 这就让我很方了,上次已经整改过一次违规获取用户隐私的问题了,这次又来。。 因为上次整改的时候,已将所有的第三方库移到用户同意了...
  • * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws Exception */ public String getIpAddr(HttpServletRequest request) throws Exception { String...
  • 获取服务器mac地址

    2021-08-09 01:46:00
    获取服务器mac地址 内容精选换一换虚拟IP地址用于为网卡提供第二个IP地址,同时支持与多个弹性云服务器的网卡绑定,从而实现多个弹性云服务器之间的高可用性。该接口用于给云服务器网卡配置虚拟IP地址:当指定的IP...
  • 最近刚完成的一个模块中,需要获取系统客户端的IP地址与物理地址MAC地址)。 获取的本机IP与MAC是服务器的,而非客户端的 通过JAVA获取,本机的IP地址MAC地址,使用如下代码即可完成: package ...
  • 方法一:将本机地址与局域网内... * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(Str...
  • java实现获取用户MAC地址方法大全

    千次阅读 2017-03-28 19:20:40
    方法一:将本机地址与局域网内其他... * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(Stri
  • import java.net.InetAddress; import java.net.NetworkInterface; import java.net.UnknownHostException; /** * 常用获取客户端信息的工具 ...public class NetworkUtil... * 获取ip地址 */ public static String g
  • 获取mac地址(B/S)document.forms[0].txtMACAddr.value=unescape(MACAddr);document.forms[0].txtIPAddr.value=unescape(IPAddr);document.forms[0].txtDNSName.value=unescape(sDNSName);if(objObject.IPEnabled != ...
  • 在Java项目中如何用代码获取用户MAC地址,我用的是w7系统
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Management; using System.Net.NetworkInformation; using Microsoft.Win32;... /// MAC地址获.
  • java获取IP地址MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现、最简单的方式,确实能获取该浏览器客户端的mac...
  • Android需要添加权限以获得Mac地址和IP地址,在AndroidManifest.xml中:1、获取手机的Mac地址,即使未打开Wifi或未连接Wi-Fi也可以获取手机的Mac地址。代码如下:public static String getMacAddress(Context ...
  • Windows/Linux获取Mac地址和CPU序列号实现

    千次阅读 多人点赞 2020-09-29 19:53:44
    UUID(Universally Unique Identifier)即通用唯一标识符,是指在一台机器上生成的数字,保证在全球范围的唯一...一般可通过获取设备的MAC地址+设备的CPU序列号作为设备的唯一标识符。 MAC地址(Media Access Control Ad
  • 今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的...
  • (2).HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关 (3).HTTP_CLIENT_IP:客户端的ip 在PHP 中使用 $_SERVER[“REMOTE_ADDR”] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是...
  • js获取客户端MAC地址

    万次阅读 2018-12-05 17:18:58
    最近遇到一个需求,医院要求呼叫中心账号必须对应MAC地址,也就是说该MAC...那么首先问题一:如何才能通过页面访问得到本地MAC地址 问题二:每台电脑上都有多个MAC地址,那么应该选用哪一个MAC地址 MAC地址是每台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,358
精华内容 41,343
关键字:

获取访问用户的mac地址