A. 獲取本機網卡MAC地址的命令是
你在 windows 的 DOS 狀態下,茄並用:ipconfig /all 命令,然後查看「本地連接」的「物理地歷仿址」一肢納纖項即可。
B. 如何從網卡中獲取MAC地址
OUI。MAC地簡廳址的長度為48位(6個位元組),通常表示為12個16進制數。
如:00-16-EA-AE-3C-40就是一個MAC地址,其中前3個位元組,16進制數00-16-EA代表網路硬體製造商的編號,它由IEEE(電氣與電子工程師協會)分配,而後3個位元組。
16進制數AE-3C-40代表該製造商所製造的某個網路產品(如網卡)的系列號。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地說,MAC地址就如同身份證上的身份證號碼,具有唯一性。
獲取方法:
在命令提示符下輸入命令「ipconfig /all」回車之後就會顯示當前計算機的一些網路信息,其中「Physical Address」字樣的這一項就是當前計算機中網卡的MAC地址。當然,如果計算機中安裝有多個網卡,則會有多個「Physical Address」字樣弊咐旅。
以上內容參考租凳網路—MAC地址
C. 如何獲取網卡的uuid
網卡自身伍緩衡只有MAC用於數據鏈路層標識,在網路層跑的TCP/IP會有ipv4、ipv6地址,不論在ISO的那個層,網卡都是沒有UUID的。
是不是把唯一通用識別碼UUID(Universally Unique Identifier)與DHCP唯一標識符 DUID(DHCP unique identifier)搞混了,呵呵。
查看網卡信息的命令有:
linux系統; ifconfig 、iwconfig (無線)
windows系統;ipconfig/all
unix系腔做統;除了可以用 ifconfig 命令外,還可以用lscfg -vl entx(x為具體網哪判卡號)、netstat命令。具體視unix系統供應商不同而略有差別,這里舉例的是AIX系統。
D. Linux下如何獲取網卡信息
有時候,寫程序的時候需要獲取計算機的網路信息,比如IP地址、電腦名稱、DNS等信息。IP地址歷氏謹和電腦名稱是比較容易獲取到的,而要想獲取地址掩碼、DNS、網關等信息就有些麻煩了。在Windows下我們一般都是通過從注冊表讀取這些信息。在Linux怎麼核族做呢?其實,Linux下更加容易一些。因為我們可以拿現成的程序看它的源代碼。通過閱讀其源代碼找到解決該問題的方法。那麼,看哪個程序的源代碼呢?如果你使用過Linux,並且比較熟悉的話就肯定知道一個命令ifconfig。這個命令和Windows下的ipconfig差不多,都可以輸出網卡的信息,其中就包含DNS、掩碼等信息。所以,我們可以通過看它的源代碼來找到解決該問題的方法。獲取系統中的網卡數量 並沒有那個系統調用提供網卡數量的獲取。但是,我們可以通過強大的proc文件系統獲取網卡數量的信息。實際上,ifconfig也是這樣做的,肢基請看示例代碼如下:0001 #include <stdio.h>0002 #include <string.h>0003 #include <errno.h>0004 0005 int GetNetCardCount()0006 {0007 int nCount = 0;0008 FILE* f = fopen("/proc/net/dev", "r");0009 if (!f)0010 {0011 fprintf(stderr, "Open /proc/net/dev failed!errno:%d\n", errno);0012 return nCount;0013 }0014 0015 char szLine[512];0016 0017 fgets(szLine, sizeof(szLine), f); 0018 fgets(szLine, sizeof(szLine), f);0019 0020 while(fgets(szLine, sizeof(szLine), f))0021 {0022 char szName[128]= {0};0023 sscanf(szLine, "%s", szName);0024 int nLen = strlen(szName);0025 if (nLen <= 0)continue;0026 if (szName[nLen - 1] == ':') szName[nLen - 1]= 0;0027 if (strcmp(szName, "lo") == 0)continue;0028 nCount++;0029 }0030 0031 fclose(f);0032 f= NULL;0033 return nCount;0034 }0035 0036 int main(int argc, char* argv[])0037 {0038 printf("NetCardCount: %d\n", GetNetCardCount());0039 return 0;0040 }獲取IP、掩碼、MAC及網關獲取IP、掩碼、MAC和廣播地址是比較容易的,只需要調用對應的IOCTL即可。只是大家對Linux下的IOCTL可能不太熟悉。卻看示例代碼: 0001 void DispNetInfo(constchar* szDevName)0002 {0003 int s = socket(AF_INET, SOCK_DGRAM, 0);0004 if (s < 0)0005 {0006 fprintf(stderr, "Create socket failed!errno=%d", errno);0007 return;0008 }0009 0010 struct ifreq ifr;0011 unsignedchar mac[6];0012 unsignedlong nIP, nNetmask, nBroadIP;0013 0014 printf("%s:\n", szDevName);0015 0016 strcpy(ifr.ifr_name, szDevName);0017 if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0)0018 {0019 return;0020 }0021 memcpy(mac, ifr.ifr_hwaddr.sa_data, sizeof(mac));0022 printf("\tMAC: x-x-x-x-x-x\n",0023 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);0024 0025 strcpy(ifr.ifr_name, szDevName);0026 if (ioctl(s, SIOCGIFADDR, &ifr) < 0)0027 {0028 nIP = 0;0029 }0030 else0031 {0032 nIP =*(unsignedlong*)&ifr.ifr_broadaddr.sa_data[2];0033 }0034 printf("\tIP: %s\n", inet_ntoa(*(in_addr*)&nIP));0035 0036 strcpy(ifr.ifr_name, szDevName);0037 if (ioctl(s, SIOCGIFBRDADDR, &ifr) < 0)0038 {0039 nBroadIP = 0;0040 }0041 else0042 {0043 nBroadIP =*(unsignedlong*)&ifr.ifr_broadaddr.sa_data[2];0044 }0045 printf("\tBroadIP: %s\n", inet_ntoa(*(in_addr*)&nBroadIP));0046 0047 strcpy(ifr.ifr_name, szDevName);0048 if (ioctl(s, SIOCGIFNETMASK, &ifr) < 0)0049 {0050 nNetmask = 0;0051 }0052 else0053 {0054 nNetmask =*(unsignedlong*)&ifr.ifr_netmask.sa_data[2];0055 }0056 printf("\tNetmask: %s\n", inet_ntoa(*(in_addr*)&nNetmask));0057 close(s);0058 } 那麼如何獲取網關地址呢?更加容易,但是,好像很少有人知道。反正我在網上沒有找到有人知道。最後看了nslookup的源代碼以後才知道正確的做法。代碼如下: res_init(); for (int i = 0; i < _res.nscount; i++) { struct sockaddr* server = (struct sockaddr*)&_res.nsaddr_list[i]; printf("Server: %s\n", inet_ntoa(*(in_addr*)&(server->sa_data[2]))); }代碼很簡單,就不做解釋了。 怎麼獲取網關呢?這個稍微有點麻煩一些,不過和獲取網卡數量相似,都是通過proc文件系統。這次分析的/proc/net/route文件。我就不再貼出示例代碼了。最後,我把運行示常式序獲取到的信息附上,以供大家有個直觀的認識:eth0: MAC: 08-00-27-98-bf-f3 IP: 192.168.1.106 BroadIP: 255.255.255.255 Netmask: 255.255.255.0Gateway: 192.168.1.1eth1: MAC: 08-00-27-16-f4-bf IP: 192.168.1.108 BroadIP: 192.168.1.255 Netmask: 255.255.255.0Gateway: 0.0.0.0eth2: MAC: 08-00-27-37-9c-91 IP: 0.0.0.0 BroadIP: 0.0.0.0 Netmask: 0.0.0.0Gateway: 0.0.0.0eth3: MAC: 08-00-27-5a-d2-39 IP: 0.0.0.0 BroadIP: 0.0.0.0 Netmask: 0.0.0.0Gateway: 0.0.0.0NetCardCount: 4DNS 0: 218.2.135.1DNS 1: 61.147.37.1
E. 如何直接讀取網卡接收到的數據包的問題
這個如果你是客戶端,httpclient調用交給你的就是完整的數據。如果是wireshark,好像其本身有一些工具可以直接按照協議把數據聚集起來保存的。
由於顯示的時候有些字元無法直接顯示,所以就用著這種格式顯示了,\XXX代表一個直接,是8進製表示。其他的是解碼好的。
你也可以用winpcap的開發包去讀取並處理這些數據。一切看你要怎麼處理這個數據了。
F. 在linux下如何通過命令查網卡配置
在linux下通過命令查網卡配置的方法如下:
1、首先在電腦上打開Linux系統,然後進入Linux系統的終端窗口。
G. 怎麼獲取網卡的狀態信息
最簡單的方緩沒法,按windows鍵+R鍵,鋒拆打開運行輸入CMD回車,銀哪棗打開命令提示符界面,輸入 :ipconfig /all 回車,就可以查看所有網路連接的狀態了。
H. 在Redhat Linux9.0 中查詢網卡信息的命令是什麼
ifconfig
無論是Linux自動安裝還是我們手工安裝,Linux都會向你詢問有關網路的問題並配置相關的軟體。這個用於配置網卡的基本命令就是ifconfig。
在執行ifconfig命令後,系統將在內核表中設置必要的參數,這樣Linux就知道如何與網路上的網卡通信。ifconfig命令有以下兩種格式:
※ifconfig [interface]
※ifconfig interface [aftype] option | address …
ifconfig的第一種格式(或使用不帶任何參數的ifconfig命令)可以用來查看當前系統的網路配置情況。
在剛剛安裝完系統之後,實際上是在沒有網卡或者網路連接的情況下使用Linux,但通過ifconfig可以使用回繞方式工作,使計算機認為自己工作在網路上。
現在我們運行行枝一下ifconfig命令,不帶參數的ifconfig命令可以顯示當前啟動的網路介面,其輸出結果為:
-----------------------------------------------------------
[root@machine1 /sbin]#ifconfig
eth0 Link encap:Ethernet Hwaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
--------------------------------------------------------------------
其中以eth0為首的部分是本機的乙太網卡配置參數,這里顯示了網卡在下的設備名/dev/eth0和硬體的MAC地址52:54:AB:DD:6F:61,MAC地址是生產廠家定的,每個網卡擁有的唯一地址。
不過我們可以手工改動網卡的MAC地址,只要我們在/etc/rc.d/init.d/中的network中加入:
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
然後重啟,此時再用ifconfig命令查看一下,我們就會發現網卡的MAC地址已經變成xx:xx:xx:xx:xx:xx了。
下一行顯示本機的IP地址信息,分別是本機的IP地址,網路廣播地址和子網掩碼。必須確認這些信息都是正確無誤的,否則Linux伺服器無法與其它網路設備建立連接。我們也可以手工實現IP與Mac地址的捆綁,命令是
arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC)
接下來顯示的是設備的網路狀態。MTU(最大傳輸單元)和Metric(度量值)欄位顯示的是該介面當前的M T U和度量值的值。按照慣例,度量值供某些操作系統所用,用於計算一條路由的成本。
再下來顯示態簡介面通信的網路統計值。RX和TX分別表示接收和傳送的數據包。如果你的網卡已經完成配置卻還是無法與其它設備通信,那麼從RX和TX的顯示數據上可以簡單地分析一下故障原因。在這種情況下,如果你看到接收和傳送的檔閉敏包的計數(packets)增加,那有可能是系統的IP地址出現了混亂;如果你看到大量的錯誤(errors)和沖突(Collisions),那麼這很有可能是網路的傳輸介質出了問題,例如網線不通或hub損壞。
再下面的Interrupt:5 Base address:0xece0顯示的是網卡的中斷調用號和埠號,這是兩個非常重要的硬體配置信息。如果您的網卡是PCI的,那麼Linux在引導時有可能會自動配置這些信息(也很有可能會讓您手工配置)但目前絕大多數網卡都是PnP的,這就需要我們進行手工配置了。如果您的網卡還沒有配置好,那麼運行:
[root@machine1 /sbin]#ifconfig
系統只會輸出以lo為首的部分。lo是look-back網路介面,從IP地址127.0.0.1就可以看出,它代表"本機"。無論系統是否接入網路,這個設備總是存在的,除非你在內核編譯的時候禁止了網路支持,這是一個稱為回送設備的特殊設備,它自動由Linux配置以提供網路的自身連接。IP地址127.0.0.1是一個特殊的回送地址(即默認的本機地址),您可以在自己的系統上用telnet對IP地址127.0.0.1進行測試。如果有inetd進程在運行的話您會從自己的機器上獲得登錄提示符。Linux可以利用這個特徵在進程與模擬網路之間進行通信。(您有興趣的話還可以試試本機的實際IP地址,如這里的機器就是210.34.6.89,或者試試"localhost",或者"127.0.0.1",同樣可以模擬網路通信。這可是Linux一個非常突出的優點!)
如果你只是關心某個設備是否正常,可以在ifconfig後面加上介面名字:
[root@machine1 /sbin]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50568 errors:0 dropped:0 overruns:0 frame:198
TX packets:3200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0
表示eth0設備已經正常工作。
有時需要為某個設備介面配置多個IP地址,辦法是使用設備別名,例如,eth0設備可以有eth0,eth0:0,eth0:1....多個別名,每個都可以有一個獨立的IP地址:
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
ifconfig eth0:0 210.34.6.88 netmask 255.255.255.128 broadcast 210.34.6.127
這樣,210.34.6.89和210.34.6.88都會被綁定在eth0設備上,使用同樣的網路設備,不同的IP地址。
如果你要暫停某個網路介面的工作,使用down參數:
ifconfig eth0 down
將取消eth0網路介面。與之對應的是有一個參數up,不過由於是預設值,所以從來不用。
如果我們使用了帶有參數的ifconfig命令,那就可以手動設置網卡的配置參數了。有效的ifconfig命令參數及其意義為(選項對應的特性可以打開也可以取消,只在選項名前加一個破折號(-)即可):
Interface 網路設備名,如eth0就表示本機的第一塊網卡。
up 標志介面處於" up"狀態,也就是說, IP層可以對其進行訪問。這個選項用於命令行上給出一個地址之時。如果這個介面已被" down"選項臨時性取消的話(與該選項對應的標記是UP RUNNING),還可以用於重新啟用一個介面。
down 標標志介面處於" down"狀態,也就是說, IP層不能對其進行訪問。這個選項有效地禁止了IP通信流通這個介面。注意,它並沒有自動刪除利用該介面的所有路由信息。如果永久性地取消了一個介面,就應該刪除這些路由條目,並在可能的情況下,提供備用路由。
netmask 標分配子網掩碼,供介面所用。要麼給一個前面是0x的32位十六進制號碼,要麼採用只適用於兩台主機所用的點分四段式號碼。對SLIP和PLIP介面來說,這個選項是必須配置的。
address 設置指定介面設備的IP地址。
dstaddr adderss 為PPP設置遠程IP地址,此關鍵字可用pointopoint代替。
irqaddress 設置指定介面設備使用的中斷行。
pointtopoint address 該選項用於只涉及兩台主機的點到點鏈接。對SLIP和PLIP介面來說,這個選項是必須配置的(如果已經設置了一個點到點地址,ifconfig就會顯示出POINTTPOINT標記)。
broadcast address 廣播地址通常源於網路編號,通過設置主機部分的所有位得來。有的I P採用的方案有所不同:這個選項可適用於某些奇怪的環境(如果已經設置了廣播地址, ifconfig就會顯示出一個BROADCAST標記)。
hw class addr 設置指定介面設備的MAC地址,關鍵字的後面必須跟硬體名或者與之等價的ASCII碼。目前支持的硬體類有ether, ax25, ARCnet和 netrom。
metric number 該選項可用於為介面創建的路由表分配度量值。路由信息協議( RIP)利用度量值來構建網路路由表。ifconfig所用的默認度量值是0。如果不運行RIP程序,就沒必要採用這個選項。如果要運行RIP程序,就盡量不要改變這個默認的度量值。
mtu bytes 該選項用於設置最大傳輸單元,也就是介面一次能處理的最大位元組數。對乙太網介面來說, MTU的默認設置是1500 個位元組;對SLIP介面來說,則是296個位元組。
arp 標這個選項專用於乙太網或包廣播之類的廣播網路。它啟用ARP(地址解析協議)來保護網路上各台主機的物理地址。對廣播網來說,默認設置是" on"(開)。
promisc 將介面置入promiscuous(混亂)模式。廣播網中,這樣將導致該介面接收所有的數據包,不管其目標是不是另一台主機。該選項允許利用包過濾器和所謂的乙太網窺視技術,對網路通信進行分析。通常情況下,這對揪出網路故障的元兇來說,是相當有用的。但另一方面,如果有人蓄意攻擊你的網路,也可瀏覽到s通信數據,進而獲得密碼,破壞你的網路。一項重要的保證措施是杜絕任何人將他們的計算機接入你的乙太網。另一個選項用於保護某些身份驗證協議的安全,比如Kerberos或SRA登錄套件(該選項對應的標記是PROMISC)。
traIlers 開或關閉跟蹤器。目前在某些Linux系統中還無法實現此功能。
allmulti 多播地址即是向不在同一個子網上的一組主機廣播數據。多播地址尚未獲得內核支持(該選項對應的標記是ALLMULTI)
txqueuelen len 設置指定介面設備的發送隊列長度。
由此可以看出有大量的參數可用於配置網卡,下面是在這台計算機上使用ifconfig命令的實例:
------------------------------------------------------------------------------
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
------------------------------------------------------------------------------
該命令的作用是設置網卡eth0的IP地址,網路掩碼和網路的本地廣播地址。同樣的方式可以用來配置eth1,eth2等等,通常netmask和broadcast只要設置一個就可以了。
I. 如何在linux中獲取網卡信息
一、查看命令
1啟動 linux 操作系統,進入到桌面。
2啟動終端。
3在終端鍵入命令 ifconfig eth0,回車。如舉毀山下圖所示:
二、信息解讀
第一行說明了網卡類型和MAC地址。
第二行說明了IPV4地余碼址,廣播地址和子網掩碼。
第三行說明了IPV6地址。
第五行說明了接收的數據包總數,以及錯誤的包數、丟失的數據正中包數。
第六行與第五行相對應,分別是發送的數據包總數,以及錯誤的包數、丟失的數據包數。
第八行則分別是接收和發送的位元組數。