LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Networking (https://www.linuxquestions.org/questions/linux-networking-3/)
-   -   print packet data (https://www.linuxquestions.org/questions/linux-networking-3/print-packet-data-269005/)

linux_lover2005 12-21-2004 08:51 PM

print packet data
 
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?


All times are GMT -5. The time now is 09:52 AM.