printing packet data

linux lover linux.lover2004 at gmail.com
Wed Dec 22 03:50:42 CET 2004


Hi all,
I want to print skb->data contents in kernel module using netfilter module at
NF_HOOK NF_IP_LOCAL_OUT. How can i do that? I know how to write netfilter
module like this one
#define MODULE
#define __KERNEL__

          #include <linux/module.h>
          #include <linux/kernel.h>
          #include <linux/skbuff.h>
          #include <linux/ip.h>
          #include <linux/netfilter.h>
          #include <linux/netfilter_ipv4.h>

          static struct nf_hook_ops nfho1;
          static unsigned char *packet_ip = "\x7f\x00\x00\x0b";

          unsigned int hook_func1(unsigned int hooknum,struct sk_buff **skb,
                                 const struct net_device *in,
                                 const struct net_device *out,
                                 int (*okfn)(struct sk_buff *))
          {
              struct sk_buff *sb = *skb;
              printk(KERN_DEBUG "calling hook_func at NF_IP_LOCAL_OUT\n");
                if (sb->nh.iph->saddr == *(unsigned int *)packet_ip)
                 {
 /*CODE REQUIRE TO BE INCLUDED HERE*/
                  return NF_ACCEPT;
          }
               else
                    return NF_ACCEPT;

          }


static int __init init(void)
  {
              nfho1.hook     = hook_func1;
              nfho1.hooknum  = NF_IP_LOCAL_OUT;
              nfho1.pf       = PF_INET;
              nfho1.priority = NF_IP_PRI_FIRST;
              nf_register_hook(&nfho1);
              return 0;
          }

static void __exit fini(void)
          {
              nf_unregister_hook(&nfho1);
          }
module_init(init);
module_exit(fini);
MODULE_LICENSE("GPL");

But how can i print those HEX codes in packet?
regards,
linux.lover



More information about the netfilter-devel mailing list