C#讀取網絡卡地址的幾種方法
轉自:http://www.cnblogs.com/diulela/archive/2012/04/07/2436111.html
以下是收集的幾種C#程式讀取MAC地址的方法,示例中是讀取所有網絡卡的MAC地址,如果僅需要讀取其中一個,稍作修改即可。
1 通過IPConfig命令讀取MAC地址
///<summary>/// 根據擷取ipconfig /all命令的輸出流獲取網絡卡Mac///</summary>///<returns></returns>publicstatic List<string> GetMacByIPConfig()
{
List<string
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
Process p = Process.Start(startInfo);
//
string line = reader.ReadLine();
while (!reader.EndOfStream)
{
if (!string.IsNullOrEmpty(line))
{
line = line.Trim();
if (line.StartsWith("Physical Address"))
{
macs.Add(line);
}
}
line = reader.ReadLine();
}
//
p.Close();
reader.Close();
return macs;
}
2 通過WMI讀取MAC地址
1)該方法依賴WMI的系統服務,該服務一般不會被關閉;但如果系統服務缺失或者出現問題,該方法無法取得MAC地址。 ///<summary>/// 通過WMI讀取系統資訊裡的網絡卡MAC///</summary>///<returns></returns>publicstatic List<string> GetMacByWMI()
{
List<string> macs =new List<string>();
try
{
string mac ="";
ManagementClass mc =new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
mac = mo["MacAddress"].ToString();
macs.Add(mac);
}
}
moc =null;
mc =null;
}
catch
{ }
return macs;
}
3 通過NetworkInterface讀取MAC地址
1)如果當前的網絡卡是禁用狀態(硬體處於硬關閉狀態),取不到該網絡卡的MAC地址,(您可以通過禁用網絡卡進行試驗)。 2)如果當前啟用了多個網絡卡,最先返回的地址是最近啟用的網路連線的資訊 //返回描述本地計算機上的網路介面的物件(網路介面也稱為網路介面卡)。publicstatic NetworkInterface[] NetCardInfo(){
return NetworkInterface.GetAllNetworkInterfaces();
}
///<summary>/// 通過NetworkInterface讀取網絡卡Mac
///</summary>///<returns></returns>publicstatic List<string> GetMacByNetworkInterface()
{
List<string> macs =new List<string>();
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface ni in interfaces)
{
macs.Add(ni.GetPhysicalAddress().ToString());
}
return macs;
}
4 通過SendARP讀取MAC地址
///<summary>/// 通過SendARP獲取網絡卡Mac/// 網路被禁用或未接入網路(如沒插網線)時此方法失靈
///</summary>///<param name="remoteIP"></param>///<returns></returns>publicstaticstring GetMacBySendARP(string remoteIP)
{
StringBuilder macAddress =new StringBuilder();
try
{
Int32 remote = inet_addr(remoteIP);
Int64 macInfo =new Int64();
Int32 length =6;
SendARP(remote, 0, ref macInfo, ref length);
string temp = Convert.ToString(macInfo, 16).PadLeft(12, '0').ToUpper();
int x =12;
for (int i =0; i <6; i++)
{
if (i ==5)
{
macAddress.Append(temp.Substring(x -2, 2));
}
else
{
macAddress.Append(temp.Substring(x -2, 2) +"-");
}
x -=2;
}
return macAddress.ToString();
}
catch
{
return macAddress.ToString();
}
}
[DllImport("Iphlpapi.dll")]
privatestaticexternint SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
[DllImport("Ws2_32.dll")]
privatestaticextern Int32 inet_addr(string ip);
5 從登錄檔讀取MAC地址
常規使用者可通過讀取登錄檔項Windows Genuine Advantage獲取到物理網絡卡地址。
1)如果登錄檔項被修改,則無法取得該MAC地址
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Genuine Advantage相關推薦
C#讀取網絡卡地址的幾種方法
轉自:http://www.cnblogs.com/diulela/archive/2012/04/07/2436111.html 以下是收集的幾種C#程式讀取MAC地址的方法,示例中是讀取所有網絡卡的MAC地址,如果僅需要讀取其中一個,稍作修改即可。 1 通過IPCo
重啟網絡卡的幾種方法
1.重啟windows網絡卡命令 rem 禁用網絡卡 netsh interface set interface 本地連線 disabled rem 啟用網絡卡netsh interface set interface 本地連線 enabled 2.根據相關資訊作出如下修改
在ubuntu下獲取網絡卡的幾種命令列方法
1. ifconfig -a 其中 HWaddr欄位就是mac地址2. cat /sys/class/net/eth0/address 檢視eth0的mac地址,其中eth0根據網絡卡不同而不同3. c
iOS-網絡檢測的幾種方法
else required 判斷網絡狀態 sha geb all ane mes nsinteger 1.AFN框架中的:AFNetworkReachabilityManager //AFN判斷網絡 -(void)getInternetStatue{ // 1.獲得網絡監控
Ubuntu14.04重啟網絡卡的三種方法:
$ ifconfig -a 展示全部網絡卡 $ ifconfig enp2s0 up 啟用網絡卡enp2s0 $ sudo vi /etc/network/interfaces auto enp2s0iface enp2s0 inet staticaddress 192.168.2.10networ
C#獲取網絡卡Mac地址
需要using System.Management; /// <summary> /// Get LocalHost MAC Address /// </summary> /// <returns></returns> pub
linux中讀取網絡卡資訊(ip, mask, mac)以及判斷物理網線是否插好的C程式---我親自試了一下,還不錯!
說明: 我主要轉載如下兩篇文章, 但本文中加入了自己的一些描述 轉載地址一:http://blog.chinaunix.net/uid-20692625-id-3172833.html 轉載地址二:http://blog.chinaun
c# 通過NetworkInterface讀取網絡卡Mac
using System.Net.NetworkInformation; ///<summary> /// 通過NetworkInterface讀取網絡卡Mac ///</summary>
無線網絡卡的四種工作模式
無線網絡卡一般有四種工作模式,即 Managed,Master,Ad-hoc,Monitor。 Managed 模式:該模式用於你的無線客戶端直接與無線接入點(Access Point,即AP)進行接入連線。在這個模式中,我們可以進行無線接入internet上網,無線網絡卡的驅動程式依賴無線AP
Linux修改網絡卡地址(臨時/永久)
1.臨時修改(重啟服務或者重啟系統後失效): ifconfig eth0 192.168.1.1 netmask 255.255.255.0 縮略:ifconfig eth0 192.168.1.1 (eth0是第一個網絡卡,eth1是第二個) 2 永久修改
網絡卡的7種bond模式
一、bond模式 Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合 Mode=1(active-backup) 表示主備模式,只有一塊網絡卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機
c# 多網絡卡 由【網路介面卡名】獲取網絡卡資訊,IP
c# 多網絡卡 由【網路介面卡名】獲取網絡卡資訊,IP 多網絡卡電腦中,網路介面卡的名字 多樣化! 專案中需要,根據網路介面卡 名字 獲取 單個網絡卡的IP: using System.Net.NetworkInformation;
Linux--多網絡卡的7種Bond模式
網絡卡bond是通過把多張網絡卡繫結為一個邏輯網絡卡,實現本地網絡卡的冗餘,頻寬擴容和負載均衡。在應用部署中是一種常用的技術,我們公司基本所有的專案相關伺服器都做了bond,這裡總結整理,以便待查。 bond模式: Mode=0(balance-rr) 表示負載分擔round-ro
嘗試探索基於Linux C的網絡卡抓包過程
其實想探究網絡卡抓包問題已經有好久了。前幾天找了時間算是基本上了解了那部分的一些基本東西,在這裡只是贅述罷了。 抓包首先便要知道經過網絡卡的資料其實都是通過底層的鏈路層(MAC),在Linux系統中我們獲取網絡卡的資料流量其實是直接從鏈路層收發資料幀。至於如
Linux軟體安裝及VirtualBox網絡卡地址10.0.2.15ip問題
在VirtualBox中安裝linux(centOS-6-bin-DVD1) 發現ip是10.0.2.15 在用客戶端連線22埠一直不能連線 出現這種情況,是因為VirtualBox的預設網路連線方式為這個: 將它改為【橋接網絡卡】: Linux解壓縮命令
獲得本機ipv4和ipv6地址(即有線網絡卡地址)
程式原始碼如下: 1. 形參ipv4, ipv6為外部呼叫者傳入,用來儲存ipv4地址和ipv6地址, 2. MAX_PATH為自定義巨集, 為數值260, IPVN_SIZE為數值50, DEFAULT_STR_PORT為字串"8080" 3. 需在標頭檔案中包含以下內容
Linux 多網絡卡的7種bond模式
網絡卡繫結mode共有七種(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6 常用的有三種mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。mode=6:平衡負載模式,有自動
cirros 修改網絡卡地址
cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.16.0.254 netmask
u-boot 新增設定網絡卡地址的命令
#if defined(CONFIG_CMD_PING) static int do_ping(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { if (argc < 2) return -1; NetPingIP = string
c# 獲取網絡卡資訊
private IList<IPInfo> GetIPInfo() { IList<IPInfo> rIPList = new List<IPInfo>(); Networ