`
xzknet
  • 浏览: 301959 次
  • 性别: Icon_minigender_1
  • 来自: 河南
文章分类
社区版块
存档分类
最新评论

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

阅读更多

方法一:

调用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查询,获取它的返回值就可以获取到它所有的网卡地址

分享到:
评论

相关推荐

    java获取客户端mac地址

    执行main方法获取mac地址,最权威的demo自己测试已经正常使用。网上基本都是假的获取不到,只有我这个才是最方便的

    华为USG夸三层交换机识别客户端MAC地址的配置方法

    在华为USG夸三层交换机上,需要配置SNMP代理,以便可以通过SNMP协议来获取客户端MAC地址信息。具体配置命令如下: [NGFW] system-view [NGFW] snmp-server arp-syn enable [NGFW] snmp-server target-host arp-sync...

    android DHCP获取IP失败分析解决.pdf

    在 Android 中,DHCP 获取 IP 的流程主要分为三个阶段:DHCP 发现、DHCP 请求和 DHCP 确认。在每个阶段,Android 设备都会与 DHCP 服务器进行通信,以获取或确认 IP 地址。 1. DHCP 发现:在这个阶段,Android 设备...

    DHCP客户端测试软件(dhcp for xcap)

    说明: 1表示报文组1, 选中报文组后, 在状态栏会显示报文组的索引, 2表示第三个报文, 即索引为3的报文. 版本记录: V1.0.1(基础版本) 1, 支持连接xcap并读取报文功能; 2, 支持刷新按钮自动更新报文功能; 3, 支持选择...

    中小企业网络管理员实用教程9.pptx

    私有 IP 地址空间是指 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 三个范围内的 IP 地址,这些 IP 地址不能在 Internet 上使用。 IP 地址信息包括 IP 地址、子网掩码、默认网关和 DNS 等。子网掩码是用来确定...

    BeeFun-for-Mac:BeeFun for Mac,GitHub mac客户端

    BeeFun,iOS的第三个Github客户端。它是用最新版本的Swift编写的。此外,这是一个开放项目。 您可以通过QR码或在App Store上获取该应用。 功能/功能 【趋势-世界惊艳】 及时找到趋势库和开发人员。 【管理您的...

    本项目是一个在线聊天系统,最大程度的还原了Mac客户端QQ。.zip

    在研究过程中,学生可能需要采用各种研究方法,如实验、调查、案例分析等,以获取必要的数据和信息。通过这些活动,学生能够培养扎实的专业技能,提升解决实际问题的实际能力。 第三,毕业设计的撰写是整个过程的...

    云计算大数据学习中心第三课笔记

    2. DHCP服务器向DHCP客户端发送DHCP Offer包(单播或广播),携带一个有效的IP地址,并暂时保留给DHCP客户端。 3. DHCP客户端向DHCP服务器发送DHCP Request包(广播),以请求分配IP地址。 4. DHCP服务器向DHCP...

    DHCP命令手册.pdf

    DHCP 的主要功能是动态分配 IP 地址,它提供三种 IP 地址分配策略:手工分配地址、自动分配地址和动态分配地址。手工分配地址是由管理员为少数特定客户端(如 WWW 服务器等)静态绑定固定的 IP 地址,通过 DHCP 将...

    Dhcp两大威胁以及arp欺骗等试验总结

    另一种方法就是与实际认证系统相结合,认证系统首先对MAC地址进行第一次认证,只有MAC地址是合法的,才允许DHCP Sever分配IP地址给终端,这主要用到802.1x认证协议和radius认证服务器。 3 有时候为了需要,不希望...

    Linux下DHCP服务器详解.pdf

    然后,DHCP 服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有 IP 地址为止。已经分配的 IP 地址必须定时地延长借用期,这个延期的过程称作leasing,确保了当客户机设备在正常地释放 IP 地址之前突然从...

    (精品word)计算机网络考研常见复试题总结.doc

    计算机网络考研常见复试题总结 本文档总结了计算机网络考研的常见复试题,...当客户端浏览器输入 www.baidu.com 时,会经历 DNS 解析、IP 地址的获取、HTTP 会话的建立、TCP 的封装和传输、服务器的响应等多个步骤。

    HCIP - OSPF经典总结

    1. 正向ARP:通过IP地址获取MAC地址。 2. 反向ARP:通过MAC地址获取IP地址。 3. 免费ARP:按照正向ARP的工作原理,只不过请求的IP地址是自己本地的IP地址。 三、DHCP协议 DHCP(Dynamic Host Configuration ...

    IPC端无重传avtp_sdk使用流程1

    这里的参数是设备标识码,必须每次启动都一样,而且每个设备又不相同,可以使用网卡 MAC 地址、芯片 UUID 等。 四、发送视频数据 在向 NVR 报告本 IPC 设备的存在后,可以发送视频数据,使用 sendViFrame() 函数...

    Linux应用软件服务篇-五剑客

    第一章节讲解主流的Vsftp服务器如何通过服务端与客户端实现...第五章节介绍了去部署DHCP服务器对批量客户端实现自动获取IP,通过配置文件IP池获取到IP形式,及绑定客户端Mac地址及指定IP给予客户端,从而获得IP方法。

    hangover:适用于Google环聊的本机Mac OS X客户端。 未维护-改用Parrot

    目前,它实质上是 ( 的本机Swift端口,这是第一个第三方Google Hangouts客户端。 从长远来看,Hangover打算成为Google忘记为Mac OS X制作的Google Hangouts客户端。 目前,宿醉是一个极其阿尔法的项目。 它正逐渐...

    appium-installer.exe

    Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能。 ...Appium-desktop主界面包含三个菜单Simple,Advanced、Presets

    如何连接隐藏SSID信息广播的无线网络

    最后笔者需要额外补充一点,那就是通过本文介绍的方法我们可以获取到隐藏SSID广播的无线网络真实SSID信息,不过破解的前提是该无线网络有客户端在连接并传输数据,如果该无线网络没有任何客户端连接的话我们也无法...

    Project-Moana:俘虏门户。 一个Hotspot或Evil双胞胎,它将客户端重定向到登录页面以输入凭据。 简单易用,错误更少

    由穆罕默德·艾哈迈德(Muhammad Ahmad)撰写 介绍: ... 其中有三个选项: 还原:它还原以前的配置,从而减少了针对同一网络的时间。 手动:它为您提供了手动选项,用于输入AP的名称,mac和通道。

Global site tag (gtag.js) - Google Analytics