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

2021-09-22 20:37:35 字數 1970 閱讀 2886

原文:

幾種c#程式讀取mac位址的方法

以下是收集的幾種c#程式讀取mac位址的方法,示例中是讀取所有網絡卡的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

C 讀取MAC位址方式

使用c 讀取計算機mac位址,如下為收集的集中方法。根據擷取ipconfig all命令的輸出流獲取網絡卡mac public static list string getmacbyipconfig line reader.readline 等待程式執行完退出程序 p.waitforexit p.c...

讀取網絡卡的MAC位址

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

C 幾種讀mac的方法

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