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

📄 net.h

📁 This a naive implementation of BOOTP/TFTPBOOT, the protocols to use to bootstrap a computer through
💻 H
字号:
/*	Copyright 2001, 2002 Georges Menie (www.menie.org)	This file is part of Tftpnaive.    Tftpnaive is free software; you can redistribute it and/or modify    it under the terms of the GNU Lesser General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    Tftpnaive is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public License    along with Tftpnaive; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#ifndef _NET_H_#define _NET_H_#define MAXPACKETBUF 16#define MAXPACKETLEN 600extern unsigned char packetBuf[MAXPACKETBUF][MAXPACKETLEN];extern unsigned short packetBufLen[MAXPACKETBUF];extern volatile int idxiPBuf, idxoPBuf;#define BOOT_RQ_ID 0xbebe2001#define BOOT_RQ_SEC 100#define BOOTP_SRV_PORT 67#define BOOTP_CLI_PORT 68#define TFTP_SRV_PORT 69#define TFTP_LOCAL_PORT TFTP_SRV_PORT#define FRAME_ARP 0x806#define FRAME_IP 0x800#define IPV4 0x4500#define PROTO_UDP 17#define PROTO_ICMP 1#define ICMP_ECHO_REQUEST 0x0800#define ICMP_ECHO_REPLY 0#define ICMP_TIMESTAMP_REQUEST 0x0d00#define ICMP_TIMESTAMP_REPLY 0x0e00#define ARP_ETH 1#define ARP_REQUEST 1#define ARP_REPLY 2#define BOOTP_ETH_REQUEST 0x101#define BOOTP_ETH_REPLY 0x201#define DONT_FRAGMENT_MASK 0x4000typedef struct {	unsigned char dst_hwadr[6];	unsigned char src_hwadr[6];	unsigned short frametype;} EthHeader;typedef struct {	EthHeader ehdr;	unsigned short hardtype;	unsigned short prottype;	unsigned char hardsize;	unsigned char protsize;	unsigned short op;	unsigned char sender_hwaddr[6];	unsigned int sender_ipaddr;	unsigned char target_hwaddr[6];	unsigned int target_ipaddr;} ARPpkt;typedef struct {	EthHeader ehdr;	unsigned short vlt;	unsigned short length;	unsigned short id;	unsigned short frag;	unsigned char ttl;	unsigned char prot;	unsigned short cks;	unsigned int src_ip;	unsigned int dst_ip;} IPpkt;typedef struct {	IPpkt iphdr;	unsigned short op;	unsigned short cks;	unsigned short id;	unsigned short seq;} ICMPpkt;typedef struct {	ICMPpkt icmphdr;	unsigned int org;	unsigned int rec;	unsigned int tra;} ICMPTSpkt;typedef struct {	IPpkt iphdr;	unsigned short src_port;	unsigned short dst_port;	unsigned short length;	unsigned short cks;} UDPpkt;typedef struct {	UDPpkt udphdr;	unsigned short op_type;	unsigned short adr_hop;	unsigned int id;	unsigned short sec;	unsigned short unused;	unsigned int cli_ip;	unsigned int your_ip;	unsigned int srv_ip;	unsigned int gw_ip;	unsigned char hw_addr[16];	unsigned char srv_name[64];	unsigned char boot_filename[128];	unsigned char options[64];} BOOTPpkt;typedef struct {	UDPpkt udphdr;	unsigned short opcode;	char data[138];} TFTPRpkt;typedef struct {	UDPpkt udphdr;	unsigned short opcode;	unsigned short num;	unsigned char data[512];} TFTPDpkt;extern void processPacket (void);extern void processARP (unsigned char *, unsigned short);extern void processIP (unsigned char *, unsigned short);extern void processUDP (unsigned char *, unsigned short);extern void processICMP (unsigned char *, unsigned short);extern void processBOOTP (BOOTPpkt *);extern void processTFTP (TFTPDpkt *);extern int sendARPRequest (unsigned int, unsigned int);extern int sendIP (IPpkt *, unsigned short, unsigned char, unsigned int);extern int sendUDP (UDPpkt *, unsigned short, unsigned int, unsigned short,					unsigned short);extern int sendICMPTimestampRequest (unsigned int);extern int sendBOOTPRequest (void);extern int sendTFTPRequest (void);extern unsigned char *lookupARP (unsigned int);extern unsigned short cks_partial (void *, unsigned short, long);extern unsigned short cks (void *, unsigned short);#endif

⌨️ 快捷键说明

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