| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*
- * network.h
- *
- * Created on: Jul 29, 2017
- * Author: wangyu
- */
- #ifndef NETWORK_H_
- #define NETWORK_H_
- extern int raw_recv_fd;
- extern int raw_send_fd;
- extern int seq_mode;
- extern int filter_port;
- extern uint32_t bind_address_uint32;
- extern int disable_bpf_filter;
- struct icmphdr
- {
- uint8_t type;
- uint8_t code;
- uint16_t check_sum;
- uint16_t id;
- uint16_t seq;
- };
- struct pseudo_header {
- u_int32_t source_address;
- u_int32_t dest_address;
- u_int8_t placeholder;
- u_int8_t protocol;
- u_int16_t tcp_length;
- };
- struct packet_info_t
- {
- uint8_t protocol;
- //ip_part:
- uint32_t src_ip;
- uint16_t src_port;
- uint32_t dst_ip;
- uint16_t dst_port;
- //tcp_part:
- bool syn,ack,psh,rst;
- uint32_t seq,ack_seq;
- uint32_t ts,ts_ack;
- uint16_t icmp_seq;
- bool has_ts;
- packet_info_t();
- };
- struct raw_info_t
- {
- packet_info_t send_info;
- packet_info_t recv_info;
- };//g_raw_info;
- int init_raw_socket();
- void init_filter(int port);
- void remove_filter();
- int send_raw_ip(raw_info_t &raw_info,const char * payload,int payloadlen);
- int peek_raw(uint32_t &ip,uint16_t &port);
- int recv_raw_ip(raw_info_t &raw_info,char * &payload,int &payloadlen);
- int send_raw_icmp(raw_info_t &raw_info, const char * payload, int payloadlen);
- int send_raw_udp(raw_info_t &raw_info, const char * payload, int payloadlen);
- int send_raw_tcp(raw_info_t &raw_info,const char * payload, int payloadlen);
- int recv_raw_icmp(raw_info_t &raw_info, char *&payload, int &payloadlen);
- int recv_raw_udp(raw_info_t &raw_info, char *&payload, int &payloadlen);
- int recv_raw_tcp(raw_info_t &raw_info,char * &payload,int &payloadlen);
- int send_raw(raw_info_t &raw_info,const char * payload,int payloadlen);
- int recv_raw(raw_info_t &raw_info,char * &payload,int &payloadlen);
- #endif /* NETWORK_H_ */
|