Печать исходного и целевого IP-адреса из пакета ARP - PullRequest
0 голосов
/ 16 декабря 2018

Я могу напечатать адрес назначения и адрес источника из пакета ARP.Но я хочу напечатать исходный IP-адрес и целевой IP-адрес из запроса ARP.Я искал в и нашел эту структуру.

`struct ether_arp {
    struct  arphdr ea_hdr;  
    u_char  arp_sha[6];
    u_char  arp_spa[4];
    u_char  arp_tha[6];
    u_char  arp_tpa[4];
};`

Но когда я пытаюсь напечатать arp_spa, я получаю что-то вроде 0:1:8:0.Очевидно, что это не IP-адрес источника.

arp_ptr = (struct ether_arp *) packet;

Я чувствую, что это неправильно, поскольку некоторые байты должны быть пропущены.Но я не уверен в этом

Кто-нибудь может прокомментировать.

РЕДАКТИРОВАНИЕ:

arp_ptr = (struct ether_arp *) packet;
            ptr = arp_ptr->arp_sha;
            i = ETHER_ADDR_LEN;
            printf(" source is:  ");
            do{ 

            printf("%s%x",(i == ETHER_ADDR_LEN) ? " " : ":",*ptr++);
            }while(--i>0); 

Выше приведен код, который я использую для печати исходного IP-адреса или исходного MAC-адреса из запроса ARP

...