方法一:

调用Windows的DOS命令,从输出结果中读取MAC地址:

public static String getMACAddress() {

String address = "";
String os = System.getProperty("os.name");
if ( os != null && os.startsWith("Windows")) {
try {
String command = "cmd.exe /c ipconfig /all";
Process p = Runtime.getRuntime().exec(command);
BufferedReader br =
new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf("Physical Address") > 0) {
int index = line.indexOf(":");
index += 2;
address = line.substring(index);
break;
}
}
br.close();
return address.trim();
}
catch (IOException e) { }
}
return address;
}

We can replace the "ipconfig" to "ping x.x.x.x" and "arp -a"...We can get the mac list...haha!!

缺点:只能取得服务器端MAC地址.如果要取得客户端的MAC地址,需用Applet.只针对MS-WIN系统.

方法二:

可以用JS或vbscript来调用WMI接口来获取Client端的MAC地址.

<html>
 <head>
 <title>WMI Scripting HTML</title>
 <script FOR="foo" EVENT="OnCompleted(hResult,pErrorObject, pAsyncContext)" LANGUAGE="JScript">

document.forms[0].txtMACAddr.value=unescape(MACAddr);
             document.forms[0].txtIPAddr.value=unescape(IPAddr);
             document.forms[0].txtDNSName.value=unescape(sDNSName);
             //document.formbar.submit();
        </script>
 
 <script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">

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>
 </head>
 <body>
  <object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" VIEWASTEXT>
  </object>
  <object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo">
  </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 method="POST" action="NICPost.asp" id="formfoo" name="formbar">

<input type=text  name="txtMACAddr">
   <input type=text  name="txtIPAddr">
   <input type=text  name="txtDNSName">

</form>
 </body>
</html>

关于WMI的详细信息可以参看MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks_for_scripts_and_applications.asp

平心而论,WMI的很强大的。原先需要动用重量级编程工具才能做到的事,现在用js/vbscript就可以做了。

获取多块网卡的MAC地址:

if(objObject.MACAddress != null && objObject.MACAddress != "undefined"){
                         MACAddr = objObject.MACAddress;
                         alert( MACAddr );
                   }

缺点:需要ActiveX支持.对MS-WIN系统有效.

方法三:

想137口发送UDP查询:

WINDOWS平台的客户端(当获取时它转换为服务端角色),NETBIOS协议在137口上,我们只要向它的137口发送UDP查询,获取它的返回值就可以获取到它所有的网卡地址

.Net 技术探讨群 4151320

欢迎大家加入!!!

转载于:https://www.cnblogs.com/ZDPPU/p/5829190.html

如何获取客户端MAC地址(三个方法)相关推荐

  1. java如何获得wlan mac_如何获取客户端MAC地址(三个方法)

    方法一: 调用Windows的DOS命令,从输出结果中读取MAC地址: public static String getMACAddress() { String address = "&q ...

  2. 获取客户端mac地址 php,js获取客户端mac地址的方法

    首先声明,此篇文章纯属标题党.今日QQ群里探讨用JS获取客户端mac地址的方法,众说纷纭,有说行有说不行的,闲着没事儿研究了一下,js确实可以获取到客户端当前电脑的mac地址,代码如下,但这段代码放到 ...

  3. java客户端mac地址_Java 获取客户端mac地址

    package com.alpha.test; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  4. android 获取设备的mac地址,Android编程获取设备MAC地址的实现方法

    本文实例讲述了Android编程获取设备MAC地址的实现方法.分享给大家供大家参考,具体如下: /** * 获取设备的mac地址 * * @param ac * @param callback * 成 ...

  5. java 根据ip获取mac地址,java服务器端根据ip获取客户端mac地址

    java服务器端根据ip获取客户端mac地址 2014/8/20 22:01:29  475900947  程序员俱乐部  我要评论(1) 摘要://判断系统publicStringcheckSys( ...

  6. java 获取客户端MAC地址

    从网上查找资料java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种. 1.通过命令方式,在客户端执行Ipconfig 等等 2.通过ActiveX的方法 3.通过向137的端口发送查询指令 ...

  7. asp获取计算机mac,ASP获取客户端MAC地址(源代码)

    本程序属于一种特别的方法.使用范围比较有限,而且有一定的危险性.借鉴了asp后门里的一些方法.下面是程序代码. dim remoteaddr if Request.ServerVariables(&q ...

  8. Android~获取WiFi MAC地址和IP方法汇总

    最近由于项目需求,需要获取手机WiFi的MAC地址和IP,于是乎网上搜罗了一波.各种版本的都有,各种方法都有,而且安卓6.0以下.6.0~7.0.7.0以上版本差异都很大!在这里我就集中给归一下类,方 ...

  9. php 获取 客户端mac,php获取客户端mac地址程序代码

    mac地址是网卡地址一般情况下是无法获取到用户的mac地址地的,因为安全限制了浏览器所以几乎不太可能获取到了,下面拿两段代码给大家玩玩. 例1,PHP代码如下:"; print_r($arr ...

最新文章

  1. li前面的原点或者方的样式修改html中列表项li所显示的圆点的颜色?,以及相关样式的设定...
  2. Centos7.6 下部署Cobbler
  3. 16.16. 部分排序
  4. [每天一个知识点]1-程序员的三大美德(1)
  5. 四十三、深入Java中的数组流,数据流和对象流操作
  6. php嵌套查询mysql语句_mysql 查询嵌套
  7. linux内存脚本下载,linux tmpfs及消耗内存脚本
  8. 蓝桥杯 ALGO-116算法训练 最大的算式
  9. Linux命令df,du 查看系统磁盘空间
  10. maven jetty的eclipse 插件
  11. 电梯里的爱情华科oj
  12. 数学建模冲刺篇(灵敏度分析)
  13. 在Postfix里给邮箱定虚拟别名
  14. 关于MD5和salt盐值加密后破解方法
  15. 服务器ssl证书在哪查看,https证书查看
  16. Packet Tracer 思科模拟器入门教程 之十一 路由器静态路由配置
  17. BW随手记-项目上零碎总结(SAP销售,开票,获利能力分析)
  18. Vue项目关闭格式检查命令
  19. git 暂存当前分支修改,切换到别的分支
  20. 2018.11.14 Chopin’s

热门文章

  1. 线段树区间合并--询问某段区间内最长连续上升子序列即最长上升子串
  2. maven项目的pom文件中常用的简单的标签理解
  3. SPFA差分约束(bzoj 2330: [SCOI2011]糖果)
  4. rand()与srand()的简单应用(随机数)
  5. 利用 opencv 中的 cv.Canny 函数快速进行图像边缘检测
  6. 原生中文版MyBB开源论坛效果展示
  7. C++ STL string字符串替换 replace函数的使用
  8. [paper reading] CornerNet
  9. js系列教程6-BOM操作全解
  10. springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库