⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpdump.c

📁 TCP-IP红宝书源代码
💻 C
字号:
/* tcpdump.c - tcpdump */

#include <conf.h>
#include <kernel.h>
#include <network.h>

/*------------------------------------------------------------------------
 * tcpdump - pretty-print a TCP packet to the console
 *------------------------------------------------------------------------
 */
tcpdump(ptcp, dlen, order)
struct tcp	*ptcp;
int		dlen;
{
	int		hlen;
	unsigned short	sport, dport, window, cksum, urgptr;
	unsigned long	seq, ack;

	if (order & EPO_TCP) {
		sport = ptcp->tcp_sport;
		dport = ptcp->tcp_dport;
		window = ptcp->tcp_window;
		cksum = ptcp->tcp_cksum;
		urgptr = ptcp->tcp_urgptr;
		seq = ptcp->tcp_seq;
		ack = ptcp->tcp_ack;
	} else {
		sport = net2hs(ptcp->tcp_sport);
		dport = net2hs(ptcp->tcp_dport);
		window = net2hs(ptcp->tcp_window);
		cksum = net2hs(ptcp->tcp_cksum);
		urgptr = net2hs(ptcp->tcp_urgptr);
		seq = net2hl(ptcp->tcp_seq);
		ack = net2hl(ptcp->tcp_ack);
	}
	kprintf("TCP:\tsrc %d\tdst %d\tseq %X\tack %X\n", sport, dport,
		seq, ack);
	kprintf("TCP: offset %x code %x window %x\n", ptcp->tcp_offset,
		ptcp->tcp_code, window);
	kprintf("TCP: cksum %x urg %d\n", cksum, urgptr);
	hlen = TCP_HLEN(ptcp);
	hexdump((char *)ptcp + hlen, dlen - hlen);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -