C 讀取MAC位址方式

2021-07-02 13:06:51 字數 1893 閱讀 3718

使用c#讀取計算機mac位址,如下為收集的集中方法。

//////

根據擷取ipconfig /all命令的輸出流獲取網絡卡mac

///

///

public

static

list

<

string

>

getmacbyipconfig()}

line 

=reader.readline();}//

等待程式執行完退出程序

p.waitforexit();

p.close();

reader.close();

return

macs;}

1)該方法依賴wmi的系統服務,該服務一般不會被關閉;但如果系統服務缺失或者出現問題,該方法無法取得mac位址。

//////

通過wmi讀取系統資訊裡的網絡卡mac

///

///

public

static

list

<

string

>

getmacbywmi()

}moc 

=null

;mc 

=null;}

catch

return

macs;

}1)如果當前的網絡卡是禁用狀態(硬體處於硬關閉狀態),取不到該網絡卡的mac位址,(您可以通過禁用網絡卡進行試驗)。

2)如果當前啟用了多個網絡卡,最先返回的位址是最近啟用的網路連線的資訊

//返回描述本地計算機上的網路介面的物件(網路介面也稱為網路介面卡)。

public

static

networkinte***ce netcardinfo()

//////

通過networkinte***ce讀取網絡卡mac

///

///

public

static

list

<

string

>

getmacbynetworkinte***ce()

return

macs;

}///

///通過sendarp獲取網絡卡mac

///網路被禁用或未接入網路(如沒插網線)時此方法失靈

///

///

///

public

static

string

getmacbysendarp(

string

remoteip)

else-2

, 2) +

"-");

}x -=2

;}return

macaddress.tostring();

}catch

}[dllimport(

"iphlpapi.dll")]

private

static

extern

intsendarp(int32 dest, int32 host, 

refint64 mac, 

refint32 length);

[dllimport(

"ws2_32.dll")]

private

static

extern

int32 inet_addr(

string

ip);

常規使用者可通過讀取登錄檔項windows genuine advantage獲取到物理網絡卡位址。

1)如果登錄檔項被修改,則無法取得該mac位址

hkey_local_machine\software\microsoft\windows genuine advantage

讀取網絡卡的MAC位址

在實際的應用系統中,我們往往會需要在程式執行時獲取當前機器的網絡卡的mac位址,以便作為某種標識之用,如控制程式的合法性等。下文介紹如何用microsoft visualc 6.0開發這樣的程式。這裡採用的方法是通過windows 9x nt win2000中內建的netapi32.dll的功能來實...

幾種C 程式讀取MAC位址的方法

原文 幾種c 程式讀取mac位址的方法 以下是收集的幾種c 程式讀取mac位址的方法,示例中是讀取所有網絡卡的mac位址,如果僅需要讀取其中乙個,稍作修改即可。根據擷取ipconfig all命令的輸出流獲取網絡卡mac public static list string getmacbyipcon...

WinCE 讀取Mac位址實踐測試

由於錯誤的理解wince 讀取mac位址就是在登錄檔中所以怎麼讀都讀不到資料,在此記錄測試過程。1 通過登錄檔中讀取mac位址 using system using system.linq using system.collections.generic using system.text usin...