網絡卡混雜模式介紹與設定

2021-07-22 05:51:58 字數 1164 閱讀 7204

1.混雜模式介紹

混雜模式就是接收所有經過網絡卡的資料報,包括不是發給本機的包。預設情況下網絡卡只把發給本機的包(包括廣播包)傳遞給上層程式,其它的包一律丟棄。簡單的講,混雜模式就是指網絡卡能接受所有通過它的資料流,不管是什麼格式,什麼位址的。當網絡卡處於這種」混雜」方式時,該網絡卡具備」廣播位址」,它對所有遇到的每乙個資料幀都 產生乙個硬體中斷以便提醒作業系統處理流經該物理**上的每乙個報文包。

2.網絡卡工作模式

網絡卡具有如下的幾種工作模式:

1) 廣播模式(broad cast model):它的實體地址(mac)位址是 0xffffff 的幀為廣播幀,工作在廣播模式的網絡卡接收廣播幀。

2)多播傳送(multicast model):多播傳送位址作為目的實體地址的幀可以被組內的其它主機同時接收,而組外主機卻接收不到。但是,如果將網絡卡設定為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內成員。

3)直接模式(direct model):工作在直接模式下的網絡卡只接收目位址是自己 mac位址的幀。

4)混雜模式(promiscuous model):工作在混雜模式下的網絡卡接收所有的流過網絡卡的幀,信包捕獲程式就是在這種模式下執行的。

網絡卡的預設工作模式包含廣播模式和直接模式,即它只接收廣播幀和發給自己的幀。如果採用混雜模式,乙個站點的網絡卡將接受同一網路內所有站點所傳送的資料報這樣就可以到達對於網路資訊監視捕獲的目的。

3.linux下網絡卡混雜模式設定方法

1)命令實現

set: ifconfig eth0 promisc 

unset: ifconfig eth0 -promisc

2)程式實現

/*

* param: @intf_name -- inte***ce name, exp: eth0

* @sock -- socket file descriptor

*/void set_card_promisc(char *intf_name, int sock)

ifr.ifr_flags |= iff_promisc;

if (ioctl(sock, siocsifflags, &ifr) == -1)

}

設定網絡卡混雜模式

關鍵api ioctlsocket 設定雜收模式 巨集 define sio rcvall 0x80000000 0x18000000 1 ip頭 typedef struct ipheader ipheader tcp頭 typedef struct tcpheader tcpheader 流程 ...

設定網絡卡的混雜模式

關於設定網絡卡的混雜模式的實現方法,很多地方都有提及,現在也能蒐集到很多具 他 中抽取,希望對大家的能有所幫助。一 在普通程式中設定網絡卡混雜模式。用非常的廣泛。下面給出設定網絡卡混雜模式的實現 include include include include int set all promisc ...

linux網絡卡混雜模式

1 網絡卡混雜模式promiscuous與linux上混雜模式的設定 2 linux下使用socket進行網絡卡抓包 1 3 linux下使用混雜模式抓包 2 4 linux下發包 3 混雜模式就是接收所有經過網絡卡的資料報,包括不是發給本機的包,即不驗證mac位址。普通模式下網絡卡只接收發給本機的...