Pergunta

Estou escrevendo o programa Python para criar o Cache do Mac-Address usando o PCAP. Mas o módulo PCAP para Python não tem uma boa documentação. Eu encontrei esta página http://pylibpcap.sourceforge.net/ com exemplo de código e funciona bem.

Alguém pode modificar este exemplo para torná-lo capaz de mostrar o endereço MAC de origem para cada pacote? Ou aponte -me para a documentação onde posso ler sobre isso ...

Atualizada

Aqui está uma parte do código em que as informações sobre endereços MAC foram cortadas.

def print_packet(pktlen, data, timestamp):
  if not data:
    return

  if data[12:14]=='\x08\x00':
    decoded=decode_ip_packet(data[14:])
    print '\n%s.%f %s > %s' % (time.strftime('%H:%M',
                                           time.localtime(timestamp)),
                             timestamp % 60,
                             decoded['source_address'],
                             decoded['destination_address'])
    for key in ['version', 'header_len', 'tos', 'total_len', 'id',
                'flags', 'fragment_offset', 'ttl']:
      print '  %s: %d' % (key, decoded[key])
    print '  protocol: %s' % protocols[decoded['protocol']]
    print '  header checksum: %d' % decoded['checksum']
    print '  data:'
    dumphex(decoded['data'])

Os primeiros 14 octetos nos dados são de destino, Mac-ADDR e tipo de éter.

    decoded=decode_ip_packet(data[14:])

Eu preciso analisá -los para obter essas informações. Tarefa é feita.

Foi útil?

Solução

Google "Ethernet Frame Formats". Os 6 primeiros octetos de um pacote são o endereço MAC de destino, que é imediatamente seguido pelos 6 octetos do endereço MAC de origem.

este Página da Wikipedia pode ajudar.

Outras dicas

Oh meu Deus, por que você está fazendo isso? Usar Scapy em vez de.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top