隨筆-86  評論-767  文章-3  trackbacks-3

          方法一:

          調(diào)用Windows的DOS命令,從輸出結(jié)果中讀取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!!

          缺點(diǎn):只能取得服務(wù)器端MAC地址.如果要取得客戶端的MAC地址,需用Applet.只針對MS-WIN系統(tǒng).

          ?

          方法二:

          可以用JS或vbscript來調(diào)用WMI接口來獲取Client端的MAC地址.


          ?
          ?WMI Scripting HTML
          ?
          ?
          ?
          ?
          ?
          ??
          ??

          ??
          ??

          ??


          ??

          ???
          ???
          ???

          ??


          ?

          忘了附上原文的出處了:
          How to get IP address of the browser when its operating behind a proxy/firewall? (applets...activex....??)
          http://www.faqts.com/knowledge_base/view.phtml/aid/9005/fid/125

          關(guān)于WMI的詳細(xì)信息可以參看MSDN:
          http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks_for_scripts_and_applications.asp

          平心而論,WMI的很強(qiáng)大的。原先需要動用重量級編程工具才能做到的事,現(xiàn)在用js/vbscript就可以做了。

          獲取多塊網(wǎng)卡的MAC地址:

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

          缺點(diǎn):需要ActiveX支持.對MS-WIN系統(tǒng)有效.

          方法三:

          想137口發(fā)送UDP查詢:

          WINDOWS平臺的客戶端(當(dāng)獲取時(shí)它轉(zhuǎn)換為服務(wù)端角色),NETBIOS協(xié)議在137口上,我們只要向它的137口發(fā)送UDP查詢,獲取它的返回值就可以獲取到它所有的網(wǎng)卡地址.

          以上內(nèi)容來自dev2dev的討論帖:

          http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=12941&tstart=0

          ?

          posted on 2005-01-20 08:50 eamoi 閱讀(5177) 評論(1)  編輯  收藏 所屬分類: Java

          評論:
          # Java系統(tǒng)如何獲取客戶端的MAC地址? [TrackBack] 2005-01-20 11:01 | eamoi
          Ping Back來自:blog.csdn.net
          [引用提示]eamoi引用了該文章, 地址: http://blog.csdn.net/eamoi/archive/2005/01/20/260611.aspx  回復(fù)  更多評論
            
          主站蜘蛛池模板: 玉山县| 吕梁市| 岢岚县| 黄石市| 德化县| 盈江县| 西峡县| 于田县| 铁岭市| 嘉祥县| 合山市| 大城县| 宜阳县| 渑池县| 高要市| 钦州市| 惠东县| 泸州市| 四川省| 渑池县| 福建省| 阜宁县| 松阳县| 康保县| 玉溪市| 延津县| 大石桥市| 保亭| 新宁县| 达拉特旗| 鄯善县| 吴川市| 四子王旗| 灵山县| 鄂尔多斯市| 西乌| 黔西| 扶余县| 双牌县| 习水县| 金塔县|