给tcpdump增加一个参数

2009-05-13 10:34:06来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在写vpcs时,所有的数据包都被封装在了udp中,对于这种再次封装后的数据包,tcpdump就没法正确识别封装后的数据包了,这就需要剥离封装头,于是增加了设置偏移量的参数,这样就可以准确识别被封装的数据包了。
--- tcpdump.c.orig     2007-09-26 09:59:54.000000000 +0800
+++ tcpdump.c 2007-10-12 09:21:33.251360976 +0800
@@ -90,6 +90,7 @@
#define MAX_CFLAG      1000000
#define MAX_CFLAG_CHARS        6
+int pkt_offset;                        /* offset of the packet */
int dflag;                     /* print filter code */
int Lflag;                     /* list available data link types and exit */
@@ -499,7 +500,7 @@
        opterr = 0;
        while (
-           (op = getopt(argc, argv, "aA" B_FLAG "c:C:d" D_FLAG "eE:fF:i:lLm:M:nNOpqr:Rs:StT:u" U_FLAG "vw:W:xXy:YZ:")) != -1)
+           (op = getopt(argc, argv, "aA" B_FLAG "c:C:d" D_FLAG "eE:fF:i:lLm:M:nNOo:pqr:Rs:StT:u" U_FLAG "vw:W:xXy:YZ:")) != -1)
                switch (op) {
                case 'a':
@@ -658,6 +659,9 @@
                        tcpmd5secret = optarg;
                        break;
+               case 'o':
+                       pkt_offset = atoi(optarg);
+                       break;
                case 'O':
                        Oflag = 0;
                        break;
@@ -1220,10 +1224,21 @@
}
static void
-print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *sp)
+print_packet(u_char *user, const struct pcap_pkthdr *h, const u_char *osp)
{
        struct print_info *print_info;
        u_int hdrlen;
+       u_char *sp;
+       struct pcap_pkthdr *ph;
+       u_char t46;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:windowsxp系统制作流程

下一篇:freebsd---------Dhcp server