在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在Linux下利用C語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)Sniffer的方法簡(jiǎn)介

            在Linux下利用C語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)Sniffer的方法簡(jiǎn)介

            作者: 時(shí)間:2012-05-16 來(lái)源:網(wǎng)絡(luò) 收藏

             if (n42) {

            本文引用地址:http://www.biyoush.com/article/149038.htm

              perror(recvfrom():);

              printf(Incomplete packet (errno is %d)n,

              errno);

              close(sock);

              exit(0);

              }

              ethhead = buffer;

              printf(Source MAC address:

              %02x:%02x:%02x:%02x:%02x:%02xn,

              ethhead[0],ethhead[1],ethhead[2],

              ethhead[3],ethhead[4],ethhead[5]);

              printf(Destination MAC address:

              %02x:%02x:%02x:%02x:%02x:%02xn,

              ethhead[6],ethhead[7],ethhead[8],

              ethhead[9],ethhead[10],ethhead[11]);

              iphead = buffer+14; /* Skip Ethernet header */

              if (*iphead==0x45) { /* Double check for IPv4

              * and no options present */

              printf(Source host %d.%d.%d.%dn,

              iphead[12],iphead[13],

              iphead[14],iphead[15]);

              printf(Dest host %d.%d.%d.%dn,

              iphead[16],iphead[17],

              iphead[18],iphead[19]);

              printf(Source,Dest ports %d,%dn,

              (iphead[20]8)+iphead[21],

              (iphead[22]8)+iphead[23]);

              printf(Layer-4 protocol %dn,iphead[9]);

              }

              }

              }

              PF_PACKET協(xié)議簇可以讓應(yīng)用程序把數(shù)據(jù)包變成似乎從網(wǎng)絡(luò)層接收的樣子,但是沒(méi)有辦法抓到那些不是發(fā)向自己主機(jī)的包。正如我們前面看到的,網(wǎng)卡丟棄所有不含有主機(jī)MAC地址的數(shù)據(jù)包,這是因?yàn)榫W(wǎng)卡處于非混雜模式,即每個(gè)網(wǎng)卡只處理源地址是它自己的幀!

              只有三個(gè)例外:如果幀的目的MAC地址是受限的廣播地址(255.255.255.255)那么它將被所有的網(wǎng)卡接收:如果一個(gè)幀的目的地址是組播地址,那么它將被那些打開(kāi)組播接收功能的網(wǎng)卡所接收;網(wǎng)卡如被設(shè)置成混雜模式,那么它將接收所有流經(jīng)它的數(shù)據(jù)包最后一種情況當(dāng)然是我們最感興趣的了,把網(wǎng)卡設(shè)置成混雜模式,我們只需要發(fā)出一個(gè)特殊的ioctl()調(diào)用在那個(gè)網(wǎng)卡上打開(kāi)一個(gè)socket,因?yàn)檫@是一個(gè)具有危險(xiǎn)性的操作,所以這個(gè)調(diào)用只有具有root權(quán)限的用戶(hù)才可完成,假設(shè)那個(gè)“sock”包含一個(gè)已經(jīng)打開(kāi)的socket。

            linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉