亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? get_packet_code.c

?? 《網絡安全開發包詳解》隨書光盤源碼 本書以計算機網絡安全開發包技術為核心,詳細討論了幾個著名的網絡安全開發包
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* 文件名字:get_packet_code.c 劉文濤編寫 */
#include "pcap.h"
/*
-----------------------------------------------------------------------------------------------------------------------
Libpcap的頭文件 ;
下面是以太網協議格式的定義
-----------------------------------------------------------------------------------------------------------------------
 */
struct ether_header
{
    u_int8_t ether_dhost[6];
    /* 目的以太網地址 */
    u_int8_t ether_shost[6];
    /* 源以太網地址 */
    u_int16_t ether_type;
    /* 以太網類型 */
};
/* 下面是IP地址格式的定義 */
typedef u_int32_t in_addr_t;
struct in_addr
{
    in_addr_t s_addr;
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是ARP協議格式的定義
-----------------------------------------------------------------------------------------------------------------------
 */
struct arp_header
{
    u_int16_t arp_hardware_type;
    /* 硬件類型 */
    u_int16_t arp_protocol_type;
    /* 協議類型 */
    u_int8_t arp_hardware_length;
    /* 硬件地址長度 */
    u_int8_t arp_protocol_length;
    /* 協議地址長度 */
    u_int16_t arp_operation_code;
    /* ARP操作碼 */
    u_int8_t arp_source_ethernet_address[6];
    /* 源以太網地址 */
    u_int8_t arp_source_ip_address[4];
    /* 源IP地址 */
    u_int8_t arp_destination_ethernet_address[6];
    /* 目的以太網地址 */
    u_int8_t arp_destination_ip_address[4];
    /* 目的IP地址 */
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是IP協議格式的定義
-----------------------------------------------------------------------------------------------------------------------
 */
struct ip_header
{
    #if defined(WORDS_BIGENDIAN)
        u_int8_t ip_version: 4,
        /* 版本 */
        ip_header_length: 4;
        /* 首部長度 */
    #else
        u_int8_t ip_header_length: 4,
        /* 首部長度 */
        ip_version: 4;
        /* 版本 */
    #endif
    u_int8_t ip_tos;
    /* 服務質量 */
    u_int16_t ip_length;
    /* 總長度 */
    u_int16_t ip_id;
    /* 標識 */
    u_int16_t ip_off;
    /* 偏移 */
    u_int8_t ip_ttl;
    /* 生存時間 */
    u_int8_t ip_protocol;
    /* 協議類型 */
    u_int16_t ip_checksum;
    /* 校驗和 */
    struct in_addr ip_souce_address;
    /* 源IP地址 */
    struct in_addr ip_destination_address;
    /* 目的IP地址 */
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是UDP協議格式的定義
-----------------------------------------------------------------------------------------------------------------------
 */
struct udp_header_liuwentao
{
    u_int16_t udp_source_port;
    /* 源端口號 */
    u_int16_t udp_destination_port;
    /* 目的端口號 */
    u_int16_t udp_length;
    /* 長度 */
    u_int16_t udp_checksum;
    /* 校驗和 */
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是TCP協議格式的定義
-----------------------------------------------------------------------------------------------------------------------
 */
struct tcp_header
{
    u_int16_t tcp_source_port;
    /* 源端口號 */
    u_int16_t tcp_destination_port;
    /* 目的端口號 */
    u_int32_t tcp_acknowledgement;
    /* 序列號 */
    u_int32_t tcp_ack;
    /* 確認碼 */
    #ifdef WORDS_BIGENDIAN
        u_int8_t tcp_offset: 4,
        /* 偏移 */
        tcp_reserved: 4;
        /* 保留 */
    #else
        u_int8_t tcp_reserved: 4,
        /* 保留 */
        tcp_offset: 4;
        /* 偏移 */
    #endif
    u_int8_t tcp_flags;
    /* 標記 */
    u_int16_t tcp_windows;
    /* 窗口大小 */
    u_int16_t tcp_checksum;
    /* 校驗和 */
    u_int16_t tcp_urgent_pointer;
    /* 緊急指針 */
};
/*
-----------------------------------------------------------------------------------------------------------------------
下面是ICMP協議格式的定義
-----------------------------------------------------------------------------------------------------------------------
 */
struct icmp_header
{
    u_int8_t icmp_type;
    /* ICMP類型 */
    u_int8_t icmp_code;
    /* ICMP代碼 */
    u_int16_t icmp_checksum;
    /* 校驗和 */
    u_int16_t icmp_id;
    /* 標識 */
    u_int16_t icmp_sequence;
    /* 序列號 */
};
/*
=======================================================================================================================
下面是分析TCP協議的函數定義
=======================================================================================================================
 */
void tcp_protocol_packet_callback(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)
{
    struct tcp_header *tcp_protocol;
    /* 定義TCP協議變量 */
    u_char flags;
    /* 標記 */
    int header_length;
    /* 首部長度 */
    u_short source_port;
    /* 源端口號 */
    u_short destination_port;
    /* 目的端口號 */
    u_short windows;
    /* 窗口 */
    u_short urgent_pointer;
    /* 緊急指針 */
    u_int sequence;
    /* 序列號 */
    u_int acknowledgement;
    /* 確認號 */
    u_int16_t checksum;
    /* 校驗和 */
    tcp_protocol = (struct tcp_header*)(packet_content + 14+20);
    /* 獲得TCP協議數據內容,跳過以太網協議和IP協議部分 */
    source_port = ntohs(tcp_protocol->tcp_source_port);
    /* 獲得源端口號 */
    destination_port = ntohs(tcp_protocol->tcp_destination_port);
    /* 獲得目的端口號 */
    header_length = tcp_protocol->tcp_offset *4;
    /* 獲得首部長度 */
    sequence = ntohl(tcp_protocol->tcp_acknowledgement);
    /* 獲得序列號 */
    acknowledgement = ntohl(tcp_protocol->tcp_ack);
    /* 獲得確認號 */
    windows = ntohs(tcp_protocol->tcp_windows);
    /* 獲得窗口大小 */
    urgent_pointer = ntohs(tcp_protocol->tcp_urgent_pointer);
    /* 獲得緊急指針 */
    flags = tcp_protocol->tcp_flags;
    /* 獲得標記 */
    checksum = ntohs(tcp_protocol->tcp_checksum);
    /* 獲得校驗和 */
    printf("-------  TCP Protocol  (Transport Layer)  -------\n");
    printf("Source Port:%d\n", source_port);
    printf("Destination Port:%d\n", destination_port);
    switch (destination_port)
    /* 根據端口號判斷應用層協議類型 */
    {
        case 80:
            printf("HTTP protocol\n");
            break;
            /* 上層協議為HTTP協議,可以在此調用分析HTTP協議的函數,讀者可以自己嘗試實現 */
        case 21:
            printf("FTP protocol\n");
            break;
            /* 上層協議為FTP協議,可以在此調用分析HTTP協議的函數 */
        case 23:
            printf("TELNET protocol\n");
            break;
            /* 上層協議為TELNET協議,可以在此調用分析HTTP協議的函數 */
        case 25:
            printf("SMTP protocol\n");
            break;
            /* 上層協議為SMTP協議,可以在此調用分析HTTP協議的函數 */
        case 110:
            printf("POP3 protocol\n");
            break;
            /* 上層協議為POP3協議,可以在此調用分析HTTP協議的函數 */
        default:
            break; /* 其它的端口號在這里沒有分析,讀者可以在此分析其它端口號代表的應用層協議 */
    }
    printf("Sequence Number:%u\n", sequence);
    printf("Acknowledgement Number:%u\n", acknowledgement);
    printf("Header Length:%d\n", header_length);
    printf("Reserved:%d\n", tcp_protocol->tcp_reserved);
    printf("Flags:");
    /* 判斷標記的種類 */
    if (flags &0x08)
        printf("PSH ");
    if (flags &0x10)
        printf("ACK ");
    if (flags &0x02)
        printf("SYN ");
    if (flags &0x20)
        printf("URG ");
    if (flags &0x01)
        printf("FIN ");
    if (flags &0x04)
        printf("RST ");
    printf("\n");
    printf("Window Size:%d\n", windows);
    printf("Checksum:%d\n", checksum);
    printf("Urgent pointer:%d\n", urgent_pointer);
}
/*
=======================================================================================================================
下面是實現分析UDP協議的函數定義
=======================================================================================================================
 */
void udp_protocol_packet_callback(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)
{
    struct udp_header_liuwentao *udp_protocol;
    /* UDP協議變量 */
    u_short source_port;
    /* 源端口號 */
    u_short destination_port;
    /* 目的端口號 */
    u_short length;
    /* 長度 */
    udp_protocol = (struct udp_header_liuwentao*)(packet_content + 14+20);
    /* 獲得UDP協議數據內容,跳過以太網協議和IP協議部分 */
    source_port = ntohs(udp_protocol->udp_source_port);
    /* 獲得源端口號 */
    destination_port = ntohs(udp_protocol->udp_destination_port);
    /* 獲得目的端口號 */
    length = ntohs(udp_protocol->udp_length);
    /* 獲得長度 */
    printf("----------  UDP Protocol  (Transport  Layer)  ----------\n");
    printf("Source port:%d\n", source_port);
    printf("Destination port:%d\n", destination_port);
    switch (destination_port)
    /* 根據端口號來判斷應用層協議類型 */
    {
        case 138:
            printf("NETBIOS Datagram Service\n");
            break;
            /*
             * 端口號是138,表示上層協議為NETBIOS
             * 數據報服務,在此可以調用分析此協議的函數,讀者自己可以試著實現。
             */
        case 137:
            printf("NETBIOS Name Service\n");
            break;
            /* 端口號是137,表示上層協議為NETBIOS 名字服務,在此可以調用分析此協議的函數 */
        case 139:
            printf("NETBIOS session service\n");
            break;
            /* 端口號是139,表示上層協議為NETBIOS 會話服務,在此可以調用分析此協議的函數。 */
        case 53:
            printf("name-domain server \n");
            break;
            /* 端口號是53,表示上層協議為域名服務,在此可以調用分析此協議的函數。 */
        default:
            break; /* 其他的端口號在此沒有分析,讀者可以在此進一步分析 */
    }
    printf("Length:%d\n", length);
    printf("Checksum:%d\n", ntohs(udp_protocol->udp_checksum));
    /* 獲得校驗和 */
}
/*
=======================================================================================================================
下面是實現分析ICMP協議的函數的定義
=======================================================================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情视频一区二区三区欧美| 亚洲国产精品一区二区久久恐怖片| 精品写真视频在线观看| 日韩精品在线看片z| 久久99国产精品久久| 26uuu亚洲| 国产成人无遮挡在线视频| 国产精品天美传媒| 91丨porny丨最新| 亚洲图片欧美色图| 精品国产一区二区三区av性色| 国产一区在线不卡| 国产精品国产三级国产普通话99 | 91.xcao| 麻豆精品在线看| 久久久高清一区二区三区| 懂色一区二区三区免费观看| 亚洲美女屁股眼交| 欧美一区二区视频在线观看| 国产一区视频在线看| 亚洲欧洲99久久| 69堂国产成人免费视频| 国产成人自拍网| 亚洲无线码一区二区三区| 2020日本不卡一区二区视频| 99精品在线免费| 麻豆精品新av中文字幕| 中文字幕一区二区不卡| 正在播放一区二区| 成人精品在线视频观看| 亚洲国产精品久久久久婷婷884| 欧美精品一区二区三区在线播放| 成人av影院在线| 日本强好片久久久久久aaa| 国产精品三级在线观看| 欧美日韩久久不卡| 丰满亚洲少妇av| 天天爽夜夜爽夜夜爽精品视频| 久久综合久久综合九色| 在线精品国精品国产尤物884a| 久久99国产精品久久99果冻传媒| 亚洲品质自拍视频网站| 精品精品国产高清a毛片牛牛| 91麻豆精品在线观看| 国产在线一区二区| 香蕉影视欧美成人| 18成人在线观看| 久久蜜桃av一区二区天堂| 欧美撒尿777hd撒尿| 岛国一区二区三区| 精品午夜一区二区三区在线观看| 亚洲韩国精品一区| 亚洲乱码国产乱码精品精98午夜| 久久免费视频一区| 精品国产一区二区三区不卡| 欧美日韩精品是欧美日韩精品| 99精品国产99久久久久久白柏| 精品一区二区三区欧美| 午夜不卡av在线| 亚洲一区二区av在线| 亚洲日本在线a| 欧美韩国日本综合| 国产亚洲欧洲997久久综合 | 久久99精品国产| 日韩精品一二三区| 亚洲不卡在线观看| 亚洲韩国精品一区| 亚洲一二三四区| 亚洲黄色尤物视频| 亚洲欧美一区二区三区孕妇| 中文字幕欧美三区| 国产精品免费视频观看| 久久久久综合网| 久久久国际精品| 国产日韩欧美麻豆| 国产日本欧洲亚洲| 国产欧美综合色| 中文字幕制服丝袜一区二区三区 | 在线成人高清不卡| 91精品免费在线| 日韩欧美国产一区在线观看| 日韩欧美在线一区二区三区| 欧美一级片免费看| 精品乱人伦小说| 日韩精品一区二区三区在线观看| 日韩精品最新网址| 久久精品日韩一区二区三区| 久久先锋影音av| 国产精品每日更新| 亚洲乱码精品一二三四区日韩在线| 一区二区三区在线观看视频| 亚洲一区二区三区国产| 日本不卡视频一二三区| 久久不见久久见免费视频7| 国产一区91精品张津瑜| 成人激情av网| 欧美自拍偷拍一区| 91精品国产aⅴ一区二区| 亚洲精品一区二区三区在线观看| 久久久国产一区二区三区四区小说| 国产日韩影视精品| 亚洲男人都懂的| 日本亚洲最大的色成网站www| 久草中文综合在线| www.综合网.com| 欧美日韩一区不卡| 久久亚洲精精品中文字幕早川悠里| 中文在线一区二区| 亚洲成av人片一区二区三区| 美女免费视频一区| 99在线精品免费| 777久久久精品| 国产精品久久久久久久午夜片| 亚洲成人中文在线| 国产在线不卡一卡二卡三卡四卡| 色综合久久久久综合99| 日韩一区二区三区精品视频| 国产精品免费aⅴ片在线观看| 亚洲高清不卡在线观看| 国产成人精品免费一区二区| 色八戒一区二区三区| 欧美精品一区二区三区很污很色的| 国产精品视频九色porn| 日韩电影在线观看一区| 国产精品69久久久久水密桃| 欧美精选一区二区| 国产精品第四页| 久久99精品久久久久| 欧美在线观看一二区| 久久久国产精华| 日韩国产欧美在线视频| 99精品偷自拍| 久久婷婷色综合| 日本伊人精品一区二区三区观看方式| av爱爱亚洲一区| 欧美成人bangbros| 午夜a成v人精品| 色综合久久综合| 中文字幕第一页久久| 久久国产免费看| 欧美日韩精品一区二区三区四区| 国产精品久久久久桃色tv| 国产一区二区免费看| 欧美精品在线一区二区| 亚洲激情男女视频| 99国产一区二区三精品乱码| 久久久蜜桃精品| 久久99久久精品| 69堂国产成人免费视频| 亚洲国产日产av| 色综合久久久久综合99| 国产精品青草综合久久久久99| 韩国女主播成人在线| 欧美一级片在线看| 日韩电影在线观看电影| 欧美日韩精品欧美日韩精品一 | 亚洲免费观看在线视频| 成人少妇影院yyyy| 国产婷婷色一区二区三区| 精品一区二区三区不卡| 欧美videos中文字幕| 日韩高清不卡一区| 69久久99精品久久久久婷婷| 亚洲18女电影在线观看| 欧美日韩aaaaaa| 亚洲1区2区3区4区| 91精品久久久久久久91蜜桃| 午夜成人在线视频| 在线不卡免费欧美| 日本va欧美va精品发布| 日韩一级二级三级精品视频| 日韩成人dvd| 精品人伦一区二区色婷婷| 国产一区二区三区免费看| 久久久综合视频| 国产91精品露脸国语对白| 日本一区二区三区国色天香 | 亚洲成a人v欧美综合天堂下载| 欧美三级韩国三级日本一级| 午夜精品123| 日韩精品中文字幕在线一区| 国产一区二区三区免费播放| 中文文精品字幕一区二区| 成人av一区二区三区| 亚洲美女免费视频| 欧美男生操女生| 经典一区二区三区| 日本一区二区成人| 一本色道久久综合亚洲91| 亚洲大片在线观看| 日韩精品一区二区三区四区 | 激情六月婷婷久久| 国产欧美日韩精品在线| 本田岬高潮一区二区三区| 亚洲黄色av一区| 欧美成人一区二区三区在线观看 | 亚洲精品一区二区三区精华液 | 日韩欧美一区在线| 国产又粗又猛又爽又黄91精品| 国产精品久久久久久久久免费桃花 |