亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲国产成人va在线观看天堂| 综合婷婷亚洲小说| 欧美日韩一区在线| 在线观看91视频| 在线观看中文字幕不卡| 欧美在线综合视频| 欧美日韩国产在线播放网站| 欧美日韩国产一二三| 在线不卡a资源高清| 91精品国产一区二区三区| 欧美精品第1页| 日韩美女视频一区二区在线观看| 日韩精品一区二区三区在线观看| 欧美成人福利视频| 欧美极品少妇xxxxⅹ高跟鞋| 1024亚洲合集| 午夜一区二区三区视频| 首页国产丝袜综合| 国产精品自拍毛片| 丁香激情综合国产| 欧美性猛片aaaaaaa做受| 91精品国产福利| 久久久亚洲国产美女国产盗摄| 亚洲一二三专区| 日本成人在线网站| 国产在线视视频有精品| 成人av免费在线播放| 日本韩国精品在线| 欧美一级在线观看| 久久欧美一区二区| 亚洲黄一区二区三区| 欧美aaaaa成人免费观看视频| 国产馆精品极品| 欧美日高清视频| 国产日产欧产精品推荐色| 伊人色综合久久天天| 美国三级日本三级久久99| 成人av高清在线| 欧美丰满少妇xxxxx高潮对白| 国产欧美日韩麻豆91| 午夜视频在线观看一区二区| 岛国av在线一区| 91精品国产综合久久精品麻豆 | 久久国产婷婷国产香蕉| 色综合中文综合网| 国产精品久久毛片a| 婷婷国产在线综合| 成人一区二区三区视频在线观看 | 欧美成人官网二区| 亚洲一区二区在线免费观看视频| 国产一区二区中文字幕| 在线观看91av| 亚洲一区在线观看免费观看电影高清| 国产乱淫av一区二区三区| 色综合久久中文字幕| 日韩免费视频一区二区| 性感美女久久精品| 欧美少妇一区二区| 亚洲欧洲国产专区| 成人黄色网址在线观看| 久久综合九色综合97_久久久| 肉丝袜脚交视频一区二区| 日本韩国欧美在线| 一区二区视频在线| 99久久er热在这里只有精品66| 久久久夜色精品亚洲| 国产乱子伦一区二区三区国色天香| 在线欧美小视频| 亚洲最快最全在线视频| 色婷婷综合中文久久一本| 国产精品久久久久久福利一牛影视| 国产不卡免费视频| 国产精品无码永久免费888| 国模娜娜一区二区三区| 久久久www成人免费毛片麻豆 | 日韩av在线发布| 欧美亚洲图片小说| 亚洲第一av色| 欧美二区三区的天堂| 日韩国产精品91| 日韩欧美国产三级| 国产很黄免费观看久久| 欧美激情一区不卡| 色婷婷久久久亚洲一区二区三区| 亚洲欧美激情小说另类| 欧美性猛交xxxxxx富婆| 日韩成人一区二区三区在线观看| 欧美精品久久久久久久久老牛影院| 日韩精品91亚洲二区在线观看| 91精品国产91久久久久久最新毛片| 麻豆国产91在线播放| 国产三级精品在线| 99精品在线免费| 亚洲福利一二三区| 26uuu色噜噜精品一区二区| 成人久久18免费网站麻豆| 亚洲裸体xxx| 欧美一级国产精品| 国产精品一区二区你懂的| 国产精品丝袜91| 欧美美女网站色| 国产在线视视频有精品| 亚洲欧美日韩一区二区| 欧美一二三四在线| 成人av在线看| 偷拍与自拍一区| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品久久久久久久久久免费看 | 欧美va在线播放| 99国产精品国产精品久久| 男女男精品视频| 中文字幕亚洲不卡| 日韩一区二区电影在线| 成人h精品动漫一区二区三区| 婷婷中文字幕一区三区| 亚洲国产精品激情在线观看| 欧美猛男超大videosgay| 成人一区二区三区| 麻豆极品一区二区三区| 亚洲最新视频在线播放| 中文在线资源观看网站视频免费不卡| 欧美日韩一区二区三区在线 | 日韩欧美在线网站| 91影院在线观看| 国产精选一区二区三区| 日韩高清一区二区| 亚洲精品日韩一| 国产日产亚洲精品系列| 日韩一区二区免费电影| 欧美日韩在线播放一区| 91尤物视频在线观看| 国产99久久久国产精品潘金网站| 日韩影院免费视频| 亚洲成人自拍偷拍| 亚洲日本在线a| 国产精品国产成人国产三级 | 国产亚洲人成网站| 日韩欧美中文字幕精品| 精品视频一区 二区 三区| 欧美成人在线直播| 欧美男人的天堂一二区| 欧美日韩一区精品| 欧美私人免费视频| 欧美午夜精品理论片a级按摩| 一本大道久久精品懂色aⅴ| www.亚洲精品| 成人午夜大片免费观看| 福利电影一区二区| 国产91精品入口| 粉嫩一区二区三区在线看| 国产精品一二三四| 丰满少妇在线播放bd日韩电影| 国产精品2024| 国产a视频精品免费观看| 成人av网在线| 91麻豆免费看片| 色呦呦国产精品| 欧美日韩和欧美的一区二区| 欧美美女直播网站| 欧美大片免费久久精品三p| 欧美第一区第二区| 国产喂奶挤奶一区二区三区| 国产精品入口麻豆九色| 亚洲精选在线视频| 日韩精品色哟哟| 国产一区二区看久久| 成人av资源在线观看| 欧美专区亚洲专区| 日韩欧美视频在线| 国产精品国产三级国产普通话三级| 亚洲人成在线观看一区二区| 一区二区三区四区在线播放| 亚洲一级不卡视频| 国产乱一区二区| av在线播放成人| 欧美狂野另类xxxxoooo| 精品国产伦一区二区三区观看体验| 久久精品视频在线看| 尤物在线观看一区| 美女精品自拍一二三四| av电影天堂一区二区在线| 色婷婷国产精品综合在线观看| 欧美高清视频www夜色资源网| 精品久久久久久久久久久院品网 | 国产精品亚洲人在线观看| a4yy欧美一区二区三区| 欧美乱妇一区二区三区不卡视频| xf在线a精品一区二区视频网站| 国产日产精品1区| 亚洲第一主播视频| 丰满少妇久久久久久久| 欧美群妇大交群中文字幕| 日本一区二区三区视频视频| 一区二区三区国产豹纹内裤在线| 九九九精品视频| 欧美视频完全免费看| 亚洲欧美综合色| 裸体一区二区三区| 91久久精品日日躁夜夜躁欧美| 久久午夜电影网|