#ifndef ETHER_HPP
#define ETHER_HPP
#include <iostream>
#include <string>
#include <netinet/ether.h>
#include "ip.hpp"
#include "arp.hpp"
void del_ether(u_char *args, const struct pcap_pkthdr* ptr_header, const u_char* ptr_packet)
{
//only 10Mb/s ether
const struct ether_header* ptr_ethernet = NULL;
const struct ip* ptr_ip;
ptr_ethernet = (struct ether_header*)ptr_packet;
if (ptr_ethernet != NULL)
{
std::string dest_mac_addr(ether_ntoa((const ether_addr*)ptr_ethernet->ether_dhost));
std::string src_mac_addr(ether_ntoa((const ether_addr*)ptr_ethernet->ether_shost));
std::cout<<src_mac_addr<<_("---->")<<dest_mac_addr<<std::endl;
std::string protocol;
switch (ntohs(ptr_ethernet->ether_type))
{
case ETHERTYPE_IP://[RFC791]
//ptr_ip = (struct ip*)(ptr_ethernet+sizeof(struct ether_header));is error,i donot know why?
//ptr_ip = (struct ip*)(ptr_packet+sizeof(struct ether_header));
del_ip(ptr_packet, sizeof(struct ether_header));
protocol = _("IP");
break;
case ETHERTYPE_ARP://[RFC826]
del_arp(ptr_packet, sizeof(struct ether_header));
protocol = _("ARP");
break;
case ETHERTYPE_REVARP:
del_rarp(ptr_packet, sizeof(struct ether_header));
protocol = _("RARP");
break;
case ETHERTYPE_PUP:
protocol = _("Xerox PUP");
break;
default:
protocol = _("undefined protocol");
break;
}
std::cout<<_("protocol: ")<<protocol<<std::endl;
}
}
#endif
#define ETHER_HPP
#include <iostream>
#include <string>
#include <netinet/ether.h>
#include "ip.hpp"
#include "arp.hpp"
void del_ether(u_char *args, const struct pcap_pkthdr* ptr_header, const u_char* ptr_packet)
{
//only 10Mb/s ether
const struct ether_header* ptr_ethernet = NULL;
const struct ip* ptr_ip;
ptr_ethernet = (struct ether_header*)ptr_packet;
if (ptr_ethernet != NULL)
{
std::string dest_mac_addr(ether_ntoa((const ether_addr*)ptr_ethernet->ether_dhost));
std::string src_mac_addr(ether_ntoa((const ether_addr*)ptr_ethernet->ether_shost));
std::cout<<src_mac_addr<<_("---->")<<dest_mac_addr<<std::endl;
std::string protocol;
switch (ntohs(ptr_ethernet->ether_type))
{
case ETHERTYPE_IP://[RFC791]
//ptr_ip = (struct ip*)(ptr_ethernet+sizeof(struct ether_header));is error,i donot know why?
//ptr_ip = (struct ip*)(ptr_packet+sizeof(struct ether_header));
del_ip(ptr_packet, sizeof(struct ether_header));
protocol = _("IP");
break;
case ETHERTYPE_ARP://[RFC826]
del_arp(ptr_packet, sizeof(struct ether_header));
protocol = _("ARP");
break;
case ETHERTYPE_REVARP:
del_rarp(ptr_packet, sizeof(struct ether_header));
protocol = _("RARP");
break;
case ETHERTYPE_PUP:
protocol = _("Xerox PUP");
break;
default:
protocol = _("undefined protocol");
break;
}
std::cout<<_("protocol: ")<<protocol<<std::endl;
}
}
#endif