
Biblioteca independente de sistema para captura e filtragem de pacotes em nível de usuário. Fornece uma estrutura portátil para monitoramento de rede de baixo nível, análise de segurança e depuração em múltiplas plataformas.
Para relatar um problema de segurança, envie um e-mail para [email protected].
Para relatar bugs e outros problemas, contribuir com patches, solicitar um recurso, fornecer feedback genérico etc., consulte as diretrizes para contribuição.
O diretório de documentação contém arquivos README sobre sistemas operacionais e opções específicos.
Git anônimo está disponível via:
https://github.com/the-tcpdump-group/libpcap.git
Este diretório contém o código-fonte da libpcap, uma interface independente de sistema para captura de pacotes em nível de usuário. A libpcap fornece uma estrutura portátil para monitoramento de rede de baixo nível. As aplicações incluem coleta de estatísticas de rede, monitoramento de segurança, depuração de rede, etc. Como quase todos os fornecedores de sistemas oferecem uma interface diferente para captura de pacotes, e como desenvolvemos várias ferramentas que exigem essa funcionalidade, criamos essa API independente de sistema para facilitar a portabilidade e para eliminar a necessidade de vários módulos de captura de pacotes dependentes do sistema em cada aplicação.
formerly from Lawrence Berkeley National Laboratory
Network Research Group <[email protected]>
ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
Para algumas plataformas, existem arquivos README.{system} que discutem problemas com a interface do sistema operacional para captura de pacotes nessas plataformas, como habilitar o suporte para essa interface no sistema operacional, se ela não estiver incluída por padrão.
A interface libpcap suporta um mecanismo de filtragem baseado na arquitetura do filtro de pacotes BSD. O BPF é descrito no artigo da Usenix Winter 1993 ``The BSD Packet Filter: A New Architecture for User-level Packet Capture'' (compressed PostScript, gzipped PostScript, PDF).
Embora a maioria das interfaces de captura de pacotes suporte alguma filtragem no kernel, a libpcap utiliza filtragem no kernel apenas para os casos de uso que suportam programas BPF, ou seja, a interface de captura de pacotes BPF, o socket de pacotes Linux e a interface GNU/Hurd.
Em todos os outros casos, a libpcap lê cada pacote no espaço do usuário e o avalia usando o programa de filtro, o que incorre em sobrecarga adicional (especialmente para filtros seletivos). Idealmente, a libpcap traduziria os filtros BPF em um programa de filtro compatível com o subsistema do kernel subjacente, mas isso não está implementado.
O BPF é padrão no NetBSD, FreeBSD, OpenBSD, DragonFly BSD, macOS, QNX e Solaris 11; uma versão mais antiga, modificada e não documentada é padrão no AIX.
O Linux tem vários sistemas baseados em BPF, e a libpcap ainda não suporta nenhum dos mecanismos eBPF, embora suporte muitos dos mecanismos de recepção com memória mapeada. Consulte o README específico para Linux para obter mais informações.
Agora existe uma regra para criar uma biblioteca compartilhada, que deve funcionar no Linux e no *BSD, entre outras plataformas.
Ela define o soname da biblioteca como libpcap.so.1; é assim que deve ser, NÃO libpcap.so.1.x ou libpcap.so.1.x.y ou algo parecido.
Temos mantido a compatibilidade binária entre as versões da libpcap há bastante tempo; não há razão para vincular um binário vinculado à libpcap a uma versão específica da libpcap.