日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linux下如何編寫(xiě)網(wǎng)絡(luò)抓包程序代碼

在Linux下編寫(xiě)網(wǎng)絡(luò)抓包程序,我們通常使用libpcap庫(kù),libpcap是一個(gè)專(zhuān)門(mén)用于數(shù)據(jù)包捕獲的庫(kù),它提供了一套完整的API,可以讓我們方便地對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行抓取、分析等操作。

創(chuàng)新互聯(lián)為企業(yè)提供:品牌網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃、小程序開(kāi)發(fā)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)和網(wǎng)站運(yùn)營(yíng)托管,一站式網(wǎng)絡(luò)營(yíng)銷(xiāo)整體服務(wù)。實(shí)現(xiàn)不斷獲取潛在客戶(hù)之核心目標(biāo),建立了企業(yè)專(zhuān)屬的“成都全網(wǎng)營(yíng)銷(xiāo)”,就用不著再為了獲取潛在客戶(hù)而苦惱,相反,客戶(hù)會(huì)主動(dòng)找您,生意就找上門(mén)來(lái)了!

安裝libpcap庫(kù)

在Ubuntu系統(tǒng)中,我們可以通過(guò)以下命令安裝libpcap庫(kù):

sudo apt-get install libpcap-dev

在其他Linux發(fā)行版中,也可以通過(guò)相應(yīng)的包管理器進(jìn)行安裝。

編寫(xiě)網(wǎng)絡(luò)抓包程序

下面是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)抓包程序,它會(huì)抓取所有的數(shù)據(jù)包,并將它們打印出來(lái):

include 
include 
include 
include 
void packet_handler(u_char *user_data, const struct pcap_pkthdr *pkthdr, const u_char *packet) {
    struct ip *iph;
    struct tcphdr *tcph;
    int length;
    iph = (struct ip *)(packet + 14);
    tcph = (struct tcphdr *)(packet + 14 + iph->ip_hl*4);
    length = pkthdr->len (iph->ip_hl*4 + tcph->doff*4);
    printf("Source IP: %s
", inet_ntoa(*(in_addr*)&iph->ip_src));
    printf("Destination IP: %s
", inet_ntoa(*(in_addr*)&iph->ip_dst));
    printf("Source Port: %d
", ntohs(tcph->source));
    printf("Destination Port: %d
", ntohs(tcph->dest));
    printf("Length: %d
", length);
}
int main() {
    pcap_t *handle;
    char errbuf[PCAP_ERRBUF_SIZE];
    struct pcap_pkthdr header;
    const u_char *packet;
    char *dev;
    struct bpf_program fcode;
    bpf_u_int32 net;
    // 打開(kāi)網(wǎng)絡(luò)設(shè)備,這里我們選擇所有設(shè)備("any")
    handle = pcap_open_live("any", BUFSIZ, 1, 1000, errbuf);
    if (handle == NULL) {
        fprintf(stderr,"Couldn't open device: %s
", errbuf);
        return(2);
    }
    // 編譯并應(yīng)用BPF過(guò)濾器,這里我們選擇TCP協(xié)議的數(shù)據(jù)包
    if (pcap_compile(handle, &fcode, "tcp", 0, net) == -1) {
        fprintf(stderr,"Couldn't parse filter %s: %s
", "tcp", pcap_geterr(handle));
        return(2);
    }
    if (pcap_setfilter(handle, &fcode) == -1) {
        fprintf(stderr,"Couldn't install filter %s: %s
", "tcp", pcap_geterr(handle));
        return(2);
    }
    // 開(kāi)始抓包,這里我們只抓取10個(gè)數(shù)據(jù)包
    while (1) {
        packet = pcap_next(handle, &header);
        printf("Packet size: %d bytes
", header.len);
        packet_handler(NULL, &header, packet);
    }
}

編譯運(yùn)行網(wǎng)絡(luò)抓包程序

我們可以使用gcc編譯器來(lái)編譯這個(gè)程序:

gcc -o sniffer sniffer.c -lpcap -lnetinet -lnsl -lssl -lcrypto -lz -lpthread -ldl -lm -lpcap-linux-gnu -lresolv-conf -lgnutls-openssl-compat -lgnutls-openssl27-compat -lgnutls-openssl30-compat -lgnutls-openssl31-compat -lgnutls-openssl32-compat -lgnutls-openssl33-compat -lgnutls-openssl34-compat -lgnutls-openssl35-compat -lgnutls-openssl36-compat -lgnutls-openssl37-compat -lgnutls-openssl38-compat -lgnutls-openssl39-compat -lgnutls-openssl40-compat -lgnutls-openssl41-compat -lgnutls-openssl42-compat -lgnutls-openssl43-compat -lgnutls-openssl44-compat -lgnutls-openssl46-compat -lgnutls-openssl47-compat -lgnutls-openssl48-compat -lgnutls-openssl49-compat -lgnutls-openssl50-compat -lgnutls-openssl51-compat -lgnutls-openssl52-compat -lgnutls-openssl53-compat -lgnutls-openssl54-compat -lgnutls-openssl55-compat -lgnutls-openssl56-compat -lgnutls-openssl57-compat -lgnutls-openssl58-compat -lgnutls-openssl59-compat -lgnutls-openssl60-compat -lgnutls-openssl61-compat -lgnutls-openssl62-compat -lgnutls-openssl63-compat -lgnutls-openssl64-compat -lgnutls-openssl65-compat -lgnutls-openssl66-compat -lgnutls-openssl67-compat -lgnutls-openssl68-compat -lgnutls-openssl69-compat -lgnutls-openssl70-compat -lgnutls-openssl71-compat -lgnutls-openssl72-compat -lgnutls

分享題目:Linux下如何編寫(xiě)網(wǎng)絡(luò)抓包程序代碼
鏈接分享:http://m.5511xx.com/article/dpppdcg.html