由於錯誤的理解wince 讀取mac位址就是在登錄檔中所以怎麼讀都讀不到資料,在此記錄測試過程。
1、通過登錄檔中讀取mac位址
using system;
using system.linq;
using system.collections.generic;
using system.text;
using smartdeviceprojectwtms;
using microsoft.win32;
using system.windows.forms;
namespace smartdeviceprojectwtms
; private registrykey reg = new registrykey[4];
public macreader()
//讀指定變數值
public string readvalue(hkey root, string subkey, string valuename)
}string strkey = subkey.getvalue(valuename).tostring();
subkey.close();
return strkey;
}catch(exception ex)
}//獲取mac位址
public static string getmacaddr()
return mac;}}
}
注:智慧型裝置中按照@「comm\dm9ce1\parms」位址讀取不到所謂的mac值,無論使用「networkaddress」或是「networkaddress0」,應該是找不到路徑所致。
2、通過
sendarp
獲取mac
位址
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.text;
using system.windows.forms;
using system.collections;
using system.diagnostics;
using system.runtime.interopservices;
using system.io;
using system.security.cryptography;
using system.net;
namespace smartdeviceprojectwtms
; private static int32 method_buffered = 0;
private static int32 file_any_access = 0;
private static int32 file_device_hal = 0x00000101;
private const int32 error_not_supported = 0x32;
private const int32 error_insufficient_buffer = 0x7a;
private static int32 ioctl_hal_get_deviceid = ((file_device_hal) << 16) | ((file_any_access) << 14) | ((21) << 2) | (method_buffered);
[dllimport("coredll.dll", setlasterror = true)]
private static extern bool kerneliocontrol(int32 dwiocontrolcode, intptr lpinbuf, int32 ninbufsize, byte lpoutbuf, int32 noutbufsize, ref int32 lpbytesreturned);
[dllimport("iphlpapi.dll", entrypoint = "sendarp")]
public static extern uint sendarp(uint destip, uint srcip, byte pmacaddr, ref uint phyaddrlen);
/// 獲取mac位址
public string getmac()
return mac;
}///獲取本機ip
public string getipaddress()
}}
此法則成功獲取到了mac位址。
讀取網絡卡的MAC位址
在實際的應用系統中,我們往往會需要在程式執行時獲取當前機器的網絡卡的mac位址,以便作為某種標識之用,如控制程式的合法性等。下文介紹如何用microsoft visualc 6.0開發這樣的程式。這裡採用的方法是通過windows 9x nt win2000中內建的netapi32.dll的功能來實...
C 讀取MAC位址方式
使用c 讀取計算機mac位址,如下為收集的集中方法。根據擷取ipconfig all命令的輸出流獲取網絡卡mac public static list string getmacbyipconfig line reader.readline 等待程式執行完退出程序 p.waitforexit p.c...
Linux下讀取預設MAC位址
mac media access control,介質訪問控制 計算機通過它來定義並識別網路裝置的位置。在嵌入式linux學習中不可避免也會遇到mac,本文主要描述了如何通過操作otp來讀取嵌入式linux裝置網絡卡中的mac位址!一 適用範圍 這裡主要介紹讀取網絡卡mac位址的方法,適用於easy...