-
2021-06-11 12:21:10
获取访问者MAC地址
WMI Scripting HTMLdocument.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地址
2020-09-03 05:53:26本文给大家汇总介绍了下使用java实现获取客户端用户的MAC地址的方法,当然最后一种更全面一些,有需要的小伙伴们可以根据需求自由选择。 -
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2020-12-19 17:02:51$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地址
2020-08-29 16:09:47本篇文章主要介绍了JAVA如何获取客户端IP地址和MAC地址非常具有实用价值,这里整理了详细的代码,需要的朋友可以参考下 -
java中通过request获取IP以及MAC地址.java
2021-06-02 16:51:55获取用户请求IP地址 根据IP地址获取mac地址 -
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2020-10-25 15:44:48主要介绍了php实现获取局域网所有用户的电脑IP和主机名、及mac地址,非常实用,需要的朋友可以参考下 -
java 获取用户的MAC地址多种方法实例详解
2020-12-16 17:16:04java 获取用户的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")); } }
希望本篇文章可以给您帮助!!!
-
java web根据访问的ip地址获取MAC地址
2021-03-04 06:15:28/*** 取客户端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:23Java获取客户端的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:31IP地址与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地址的行为。 这就让我很方了,上次已经整改过一次违规获取用户隐私的问题了,这次又来。。 因为上次整改的时候,已将所有的第三方库移到用户同意了... -
转《java获取登陆用户ip和mac地址的方法》
2019-05-06 11:40:36* 通过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... -
JavaWeb获取客户端的IP地址与MAC地址总结
2020-02-06 21:28:09最近刚完成的一个模块中,需要获取系统客户端的IP地址与物理地址(MAC地址)。 获取的本机IP与MAC是服务器的,而非客户端的 通过JAVA获取,本机的IP地址与MAC地址,使用如下代码即可完成: package ... -
Java实现获取用户MAC地址
2019-10-23 09:10:33方法一:将本机地址与局域网内... * 根据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 -
使用HttpServletRequest获取ip地址和mac地址
2021-12-24 21:01:02import java.net.InetAddress; import java.net.NetworkInterface; import java.net.UnknownHostException; /** * 常用获取客户端信息的工具 ...public class NetworkUtil... * 获取ip地址 */ public static String g -
通过js 获取mac地址(B/S)
2021-06-11 12:20:23获取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地址?
2015-02-06 07:17:47在Java项目中如何用代码获取用户MAC地址,我用的是w7系统 -
C#获取电脑MAC地址(物理地址)的几种方法
2021-07-12 09:28:10using 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地址方式
2020-05-09 21:38:14java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现、最简单的方式,确实能获取该浏览器客户端的mac... -
Android获取Mac地址及IP地址需要添加权限,只有连接成功才能获取
2021-06-02 16:42:15Android需要添加权限以获得Mac地址和IP地址,在AndroidManifest.xml中:1、获取手机的Mac地址,即使未打开Wifi或未连接Wi-Fi也可以获取手机的Mac地址。代码如下:public static String getMacAddress(Context ... -
Windows/Linux获取Mac地址和CPU序列号实现
2020-09-29 19:53:44UUID(Universally Unique Identifier)即通用唯一标识符,是指在一台机器上生成的数字,保证在全球范围的唯一...一般可通过获取设备的MAC地址+设备的CPU序列号作为设备的唯一标识符。 MAC地址(Media Access Control Ad -
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2021-03-08 09:22:25今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的... -
php中获取远程客户端的真实ip地址的方法
2020-12-19 17:03:31(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地址是每台...