Como faço para usar o soquete bruto em Python?

Estou escrevendo um aplicativo para testar um driver de rede para manipular dados corrompidos. E pensei em enviar esses dados usando o soquete bruto, para que ele não seja corrigido pela pilha TCP-IP da máquina emissora.

Eu estou escrevendo este aplicativo exclusivamente no Linux. Eu tenho exemplos de código de uso de soquetes brutos em chamadas de sistema, mas eu realmente gostaria de manter meu teste o mais dinâmico possível, e escrever a maioria, se não todo, em Python.

Eu pesquisei na web um pouco sobre explicações e exemplos do uso de sockets raw em python, mas não achei nada realmente esclarecedor. Apenas um exemplo de código muito antigo que demonstra a ideia, mas de maneira alguma funciona.

Pelo que eu aprendi, o uso do Raw Socket no Python é quase idêntico em semântica ao soquete bruto do UNIX, mas sem ostructs que definem a estrutura dos pacotes.

Eu queria saber se seria ainda melhor não escrever a parte do teste bruto em Python, mas em C com chamadas do sistema, e chamá-lo do código principal do Python?

questionAnswers(7)

yourAnswerToTheQuestion