亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipdump.c

?? Please unzip the file and make it under linux. It s function is just like tcpdump in linux.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/time.h>#include <sys/socket.h>#include <net/ethernet.h>#include <netinet/in_systm.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <getopt.h> //added for getopt()&&optarg,optind#define __FAVOR_BSD //due to some BSD style structure,tcphdr#include <netinet/tcp.h>#include <netinet/udp.h>#include <netinet/if_ether.h>#include <arpa/inet.h>#ifdef __linux#include <linux/sockios.h>#include <linux/if.h>#else#include <sys/ioctl.h>#include <net/bpf.h>#include <net/if.h>#include <fcntl.h>#endif#define MAXSIZE 4096#define OPTNUM 8#define ON 1#define OFF 0enum{ ETHER, ARP, IP, TCP, UDP, ICMP, DUMP, ALL };#ifdef __linuxint open_bpf (char *ifname);#endifvoid print_ethernet (struct ether_header *eth);void print_arp (struct ether_arp *arp);void print_ip (struct ip *ip);void print_icmp (struct icmp *icmp);void print_tcp (struct tcphdr *tcp);void print_udp (struct udphdr *udp);void dump_packet (unsigned char *buff, int len);char *mac_ntoa (u_char * d);char *tcp_ftoa (int flag);char *ip_ttoa (int flag);char *ip_ftoa (int flag);void help (char *cmd);struct ip *ip; //this structure can be used for allintmain (int argc, char *argv[]){	struct ether_header *eth;	struct ether_arp *arp;	//struct ip *ip;	struct icmp *icmp;	struct tcphdr *tcp;	struct udphdr *udp;	int s; //socket 	int len; //received len	int c; //char from getopt()	int disp; //flg of displaying on screen	char buff[MAXSIZE]; //recv buffer	char *p; //datagram header pointer 	char *p0; //datagram pointer	char ifname[256] = "x10"; //FreeBSD socket	int opt[OPTNUM]; //area flag	//extern int optind; //getopt() variable#ifndef __linux	int bpf_len; //len received from BPF	struct bpf_hdr *bp; //BPF header struct#endif	//init value of every type packet	//setbuf(stdout,NULL);	opt[ETHER] = OFF;	opt[ARP] = ON;	opt[IP] = ON;	opt[TCP] = ON;	opt[UDP] = ON;	opt[ICMP] = ON;	opt[DUMP] = OFF;	opt[ALL] = OFF;while ((c = getopt (argc, argv, "aei:p:dh") != EOF)) //command parameter process		{			switch (c)			{			case 'a': //all				{					opt[ALL] = ON;					break;				}			case 'i': //ifname 				{					strcpy (ifname, optarg);					break;				}			case 'e': //ethernet				{					opt[ETHER] = ON;					break;				}			case 'd': //dump 				{					opt[DUMP] = ON;					break;				}			case 'p': //protocol				{					opt[ARP] = OFF;					opt[IP] = OFF;					opt[TCP] = OFF;					opt[UDP] = OFF;					opt[ICMP] = OFF;					optind--;					while (argv[optind] != NULL && argv[optind][0] != '-')					{						if (strcmp (argv[optind], "arp" == 0)) //arp							opt[ARP] = ON;						else if (strcmp (argv[optind], "ip" == 0)) //ip							opt[IP] = ON;						else if (strcmp (argv[optind], "tcp" == 0)) //tcp							opt[TCP] = ON;						else if (strcmp (argv[optind], "udp" == 0)) //udp							opt[UDP] = ON;						else if (strcmp (argv[optind], "icmp" == 0)) //icmp							opt[ICMP] = ON;						else if (strcmp (argv[optind], "other" == 0)) //other							;						else						{							help (argv[0]);							exit (EXIT_FAILURE);						}						optind ;					}					break;				}			case 'h': //help			case '?':			default:				{					help (argv[0]);					exit (EXIT_FAILURE);					break;				}			}		} 	if (optind < argc)		{			while (optind < argc)			{				printf ("%s", argv[optind ]);			}			printf ("\n");				help (argv[0]);			exit (EXIT_FAILURE);		}#ifdef __linux		//***********open socket with promiscuous***************		if ((s = socket (AF_INET, SOCK_PACKET, htons (ETH_P_ALL))) < 0)			//if ((s = socket (AF_INET, SOCK_STREAM, 0)) < 0)		{			perror ("socket");				exit (EXIT_FAILURE);		}		if (strcmp (ifname, "x10") != 0)		{			struct sockaddr sa;			memset (&sa, 0, sizeof sa);			sa.sa_family = AF_INET;			strcpy (sa.sa_data, ifname);			if (bind (s, &sa, sizeof sa) < 0)			{				perror ("bind");					exit (EXIT_FAILURE);			}		}#else		if ((s = open_bpf (ifname)) < 0)		{			exit (EXIT_FAILURE);		}		bpf_len = 0;#endif 		 while (1)		{#ifndef __linux			//******input from UNIX bpf*******			if (bpf_len <= 0)			{				//*********get some packet at onece********				if ((bpf_len = read (s, buff, MAXSIZE)) < 0)				{					perror ("read");						exit (EXIT_FAILURE);				}				bp = (struct bpf_hdr *) buff;			}			else			{				//*********move the next bpf pointer*******				bp = (struct bpf hdr *) ((char *) bp+ bp->bh_hdrlen+ 					bp->bh_caplen);				bp = (struct bpf hdr *) BPF_WORDALIGN ((int) bp);			}			//*******init Ethernet header pointer********			p = p0 = (char *) bp+ bp->bh_hdrlen;			len = bp->bh_caplen;#ifdef DEBUG			//*******display BPF header struct***********							printf ("hdrlen=%d,", bp->bh_hdrlen);			printf ("caplen=%d,", bp->bh_caplen);			printf ("datalen=%d\n", bp->bh_datalen);#endif			//*******process unit before next while loop**			bpf_len -= BPF_WORDALIGN (bp->bh_hdrlen bp->bh_caplen);#else			//*******input from Linux SOCK_PACKET********			if ((len = read (s, buff, MAXSIZE)) < 0)			{				perror ("read");					exit (EXIT_FAILURE);			}			//*******init Ethernet header pointer*********			p = p0 = buff;#endif			//*******packet displaying process unit*******			disp = OFF; //flag of whether display on screen			//*******set the header of Ethernet's struct***			eth = (struct ether_header *) p;			p = p + sizeof (struct ether_header); //ethernet datagram pointer			if (ntohs (eth->ether_type) == ETHERTYPE_ARP) //arp packet			{				if (opt[ARP] == ON)				{					if (opt[ETHER] == ON)					{						print_ethernet (eth);					}					arp = (struct ether_arp *) p;					print_arp (arp);					disp = ON;				}			}  			else if ((ntohs (eth->ether_type) == ETHERTYPE_IP) && (eth->ether_dhost != eth->ether_shost)) //ip packet			{				ip = (struct ip *) p;				if (strcmp					(inet_ntoa (*(struct in_addr *) &(ip->ip_src)),					"127.0.0.1" != 0))				{					p = p + ((int) (ip->ip_hl) << 2);					if (opt[IP] == ON && opt[TCP] == OFF						&& opt[UDP] == OFF && opt[ICMP] == OFF)					{						if (opt[ETHER] == ON)						{							print_ethernet (eth);						}						print_ip (ip);						disp = ON;					}					switch (ip->ip_p)					{					case IPPROTO_TCP:						tcp = (struct tcphdr *) p;						p = p + ((int) (tcp->th_off) << 2);						if (opt[TCP] == ON)						{							if (opt[IP] == ON)							{								if (opt[ETHER] == ON)								{									print_ethernet(eth);																		}								print_ip (ip);							}							print_tcp (tcp);							disp = ON;						}						break;					case IPPROTO_UDP:						udp = (struct udphdr *) p;						p = p + sizeof (struct udphdr);						if (opt[UDP] == ON)						{							if (opt[IP] == ON)							{								if (opt[ETHER] == ON)								{									print_ethernet										(eth);								}								print_ip (ip);							}							print_udp (udp);							disp = ON;						}						break;					case IPPROTO_ICMP:						icmp = (struct icmp *) p;						p = p + sizeof (struct udphdr);						if (opt[ICMP] == ON)						{							if (opt[IP] == ON)							{								if (opt[ETHER] == ON)								{									print_ethernet										(eth);								}								print_ip (ip);							}							print_icmp (icmp);							disp = ON;						}						break;					default:						if (opt[ALL] == ON)						{							if (opt[IP] == ON)							{								if (opt[ETHER] == ON)								{									print_ethernet										(eth);								}								print_ip (ip);							}							printf ("IP Protocol : unknown\n");								disp = ON;						}						break;					}				} 				 else				{					if (opt[ALL] == ON)					{						if (opt[ETHER] == ON)						{							print_ethernet (eth);						}						printf ("Ethernet protocol:unknow\n");							disp = ON;					}				}				if (disp == ON)				{					if (opt[DUMP] == ON)					{						dump_packet (p0, len);					}					printf ("\n");				}			}		}		return EXIT_SUCCESS;}/************************************************convert mac add. to str************************************************/char *mac_ntoa (u_char * d){	static char str[50];	sprintf (str, "%02x:%02x:%02x:%02x:%02x:%02x",		d[0], d[1], d[2], d[3], d[4], d[5]);	return str;}/************************************************disp Ethernet header************************************************/voidprint_ethernet (struct ether_header *eth){	int type = ntohs (eth->ether_type); //Ethernet type	if (type <= 1500)	{		printf ("IEEE 802.3 Ethernet Frame:\n");	}	else	{		printf ("Ethernet Frame:\n");	}	printf (" ------------------------------------------ \n");		printf ("|Destination MAC Address: %      17s|\n",		mac_ntoa (eth->ether_dhost));	printf (" ------------------------------------------ \n");		printf ("|Source MAC Address:%            17s|\n",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到一区二区三区| 开心九九激情九九欧美日韩精美视频电影 | 无码av免费一区二区三区试看 | 日韩一级片网站| 美女视频黄 久久| 欧美成人午夜电影| 黑人精品欧美一区二区蜜桃| 久久久久久久电影| av福利精品导航| 亚洲影院在线观看| 欧美理论片在线| 国精产品一区一区三区mba桃花 | 国产盗摄一区二区三区| 国产欧美日韩卡一| 色婷婷精品久久二区二区蜜臀av| 亚洲免费av在线| 555夜色666亚洲国产免| 国内不卡的二区三区中文字幕 | 日韩你懂的在线播放| 国产美女在线观看一区| 亚洲色图一区二区三区| 911国产精品| 国产成人精品网址| 亚洲一区精品在线| 欧美电影免费观看高清完整版| 久久国产尿小便嘘嘘尿| 最好看的中文字幕久久| 欧美日本一区二区| 国产成人在线视频网址| 夜夜爽夜夜爽精品视频| 欧美精品一区男女天堂| 色欧美乱欧美15图片| 精品一区二区三区蜜桃| 亚洲精品菠萝久久久久久久| 欧美电视剧在线看免费| 色综合天天综合色综合av| 日本美女一区二区三区| **性色生活片久久毛片| 日韩午夜在线观看视频| 色婷婷av一区二区三区大白胸| 日韩成人一级片| 中文字幕亚洲电影| 欧美videofree性高清杂交| 色呦呦日韩精品| 国产99久久久久久免费看农村| 亚洲一级二级三级在线免费观看| 日韩欧美中文字幕公布| 日本乱码高清不卡字幕| 懂色av一区二区三区蜜臀 | 91尤物视频在线观看| 久久激情综合网| 亚洲chinese男男1069| 国产精品国产三级国产三级人妇 | 一区二区三区波多野结衣在线观看| 欧美一卡2卡3卡4卡| 欧美三级电影精品| av资源网一区| 丁香婷婷深情五月亚洲| 激情小说亚洲一区| 日韩高清不卡在线| 五月天欧美精品| 成人成人成人在线视频| 久久99精品一区二区三区三区| 国产精品另类一区| 国产欧美一区二区精品性色| 日韩写真欧美这视频| 91麻豆精品国产91久久久久久久久| 懂色av噜噜一区二区三区av| 国内精品久久久久影院薰衣草| 五月婷婷激情综合| 亚洲成av人在线观看| 亚洲已满18点击进入久久| 亚洲欧美乱综合| 洋洋av久久久久久久一区| 亚洲美女在线国产| 亚洲欧美日韩系列| 亚洲人成伊人成综合网小说| 自拍av一区二区三区| 国产精品成人免费| 亚洲激情五月婷婷| 亚洲综合丝袜美腿| 午夜精品久久久久影视| 亚洲成人免费观看| 蜜臀精品久久久久久蜜臀| 蜜桃av噜噜一区| 激情成人综合网| 成人深夜福利app| 99久久国产综合精品女不卡| 色天天综合色天天久久| 在线观看欧美黄色| 欧美一区二区啪啪| 久久精品人人做人人综合| 久久久久久久久久久99999| 欧美国产激情二区三区 | 国产一区二区三区蝌蚪| 国产一区二区0| 99久久精品免费精品国产| 99久久99久久精品免费观看| 日本韩国欧美在线| 在线播放91灌醉迷j高跟美女 | 日韩精品一卡二卡三卡四卡无卡| 91一区二区三区在线观看| 色av一区二区| 欧美精品电影在线播放| 日韩精品专区在线| 国产精品水嫩水嫩| 亚洲国产aⅴ天堂久久| 蜜桃一区二区三区在线| 国产成人精品亚洲777人妖| 91论坛在线播放| 日韩午夜激情免费电影| 国产精品乱码妇女bbbb| 午夜精品久久久久久久| 国产美女久久久久| 91福利视频在线| 欧美大胆人体bbbb| 一区免费观看视频| 蜜桃视频第一区免费观看| 成人动漫视频在线| 欧美一区二区三区思思人| 国产女主播一区| 无码av免费一区二区三区试看| 麻豆91在线看| 91香蕉视频黄| 精品99一区二区| 亚洲亚洲精品在线观看| 韩国av一区二区三区四区| 在线一区二区三区做爰视频网站| 欧美日韩一级视频| 国产精品妹子av| 日韩不卡在线观看日韩不卡视频| 国产电影一区在线| 欧美性高清videossexo| 国产精品女人毛片| 久久99热国产| 欧美日韩午夜在线| 国产精品久久久久久一区二区三区 | 一区二区三区欧美日韩| 精品一区二区三区影院在线午夜| 91精品国产91综合久久蜜臀| 中文欧美字幕免费| 久久99国产精品久久99果冻传媒| 不卡的av电影| 国产喂奶挤奶一区二区三区| 日日夜夜精品视频免费| 一本在线高清不卡dvd| 国产三级精品三级| 国产综合色视频| 欧美一级夜夜爽| 亚洲不卡在线观看| 欧美体内she精视频| 亚洲欧美一区二区三区孕妇| 国产精品99精品久久免费| 日韩免费电影网站| 麻豆久久一区二区| 91精品国产综合久久久久久久久久| 欧美国产精品中文字幕| 国产黄色成人av| 久久久久国色av免费看影院| 日本成人中文字幕| 91精品国产综合久久久蜜臀图片| 亚洲精品中文在线影院| 91伊人久久大香线蕉| 国产精品久久久久久久浪潮网站| 精品一区精品二区高清| 欧美不卡在线视频| 精品亚洲aⅴ乱码一区二区三区| 色婷婷精品大视频在线蜜桃视频| 国产精品女主播av| 不卡的电影网站| 综合分类小说区另类春色亚洲小说欧美| 国内外精品视频| 久久综合狠狠综合久久综合88| 免费人成黄页网站在线一区二区 | 99精品视频在线免费观看| 国产精品午夜电影| 99久久精品一区| 亚洲免费在线观看视频| 欧洲精品在线观看| 午夜亚洲国产au精品一区二区| 91激情在线视频| 天天综合网天天综合色| 欧美在线影院一区二区| 精品国产乱码久久久久久蜜臀| 国产成人在线色| 国内精品国产成人国产三级粉色| 欧美精品v日韩精品v韩国精品v| 一区在线观看免费| 91福利国产成人精品照片| 亚洲国产精品久久艾草纯爱 | 国产一区二区按摩在线观看| 国产亚洲短视频| 91美女在线视频| 亚洲成人av福利| 久久一区二区视频| 91美女片黄在线| 天堂av在线一区| 国产欧美日韩激情| 欧洲人成人精品| 国产乱人伦偷精品视频免下载|