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


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MQTTBox是一款流行的MQTT客户端软件,可以用于开发和测试与MQTT代理通信的应用程序。下载MQTTBox非常简单,以下是具体步骤: 第一步,打开您的互联网浏览器,可以是Google Chrome、Mozilla Firefox等。 第二步,进入MQTTBox官方网站。您可以在搜索引擎中输入"MQTTBox官方网站",然后点击搜索结果中的链接,进入官方网站。 第三步,在官方网站主页上寻找下载页面。一般来说,下载页面通常会在主页的菜单栏中或页面底部的链接中。 第四步,点击下载链接。一旦找到下载页面,您将看到提供下载的不同版本的MQTTBox软件。选择适合您操作系统的版本,比如Windows、MacOS或Linux。 第五步,开始下载。点击选择的版本下载链接后,浏览器将开始下载MQTTBox程序文件。请耐心等待,直到下载完成。 第六步,安装MQTTBox。一旦下载完成,找到下载的文件,双击打开并按照提示进行安装。在安装过程中,请注意选择正确的安装路径和其他设置选项。 第七步,启动MQTTBox。一旦安装完成,您可以在桌面或开始菜单中找到MQTTBox的快捷方式,双击它将启动客户端。 通过以上步骤,您将成功下载和安装MQTTBox客户端,并可以开始使用它来进行MQTT通信的开发和测试。希望这个回答对您有帮助! ### 回答2: MQTTBox是一个开源的MQTT客户端工具,可以用于方便地测试和调试MQTT通信。要下载MQTTBox客户端,首先需要打开MQTTBox官方网站。接下来,点击页面上的“下载”或类似的按钮。然后,会弹出一个窗口,询问您希望下载的操作系统版本。根据您的电脑或设备的操作系统类型,选择相应的版本。一般来说,MQTTBox支持Windows、Mac和Linux三个主要的操作系统。选择适合您的操作系统后,会开始自动下载MQTTBox安装文件。下载完成后,可以在下载文件夹或其他指定位置找到安装文件。如有需要,可以将安装文件复制到其他位置进行安装。双击安装文件运行安装程序,按照界面上的指引完成安装。安装完成后,您就可以在您的电脑或设备上找到MQTTBox客户端图标了。双击图标打开MQTTBox客户端,可以开始使用该工具进行MQTT通信的测试和调试。 ### 回答3: MQTTBox是一款广泛使用的MQTT客户端工具,可以用于发送和接收MQTT消息。要下载MQTTBox客户端,可按照以下步骤进行: 1. 打开Web浏览器,进入MQTTBox官方网站。 2. 定位到下载页面,通常位于菜单栏的"下载"或"获取"选项下。 3. 确保选择正确的操作系统平台,MQTTBox提供了Windows、Mac和Linux版本,根据您的操作系统选择对应的下载链接。 4. 单击下载链接,开始下载MQTTBox客户端的安装文件。文件格式通常是一个可执行文件(exe、dmg等)或压缩文件(zip、tar.gz等)。 5. 下载完成后,双击安装文件并按照指示进行安装。 6. 安装完成后,可以在开始菜单(Windows)或应用程序文件夹(Mac)中找到MQTTBox客户端的快捷方式。 7. 双击快捷方式运行MQTTBox客户端。 8. 在打开的MQTTBox窗口中,输入Broker地址、端口号和其他连接参数,然后点击连接按钮,连接到MQTT代理。 9. 连接成功后,可以开始发送和接收MQTT消息,通过MQTTBox的用户界面可以轻松地进行这些操作。 请注意,MQTTBox是一个第三方开发的软件,下载和使用时需要确保来源可信和可靠,以保证软件的安全性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值