Usando soquetes brutos com C #

Eu quero escrever um scanner de porta em C # e não consigo usar o SocketType.Raw, pois soquetes brutos foram retirados das versões de desktop do Windows. Não consigo usar o SharpPcap nem outro wrapper para o Winpcap, pois uso o PPPoE para conexão com a Internet e o Winpcap não suporta dispositivos PP

Preciso usar uma biblioteca que implemente soquetes brutos e não confie no winpca

Alguma ideia? Basicamente, preciso enviar SYN, receber SYN / ACK ou RST, mas não enviar ACK de volta.

editar

Para pessoas que não acreditam que os soquetes RAW tenham saído das versões para desktop do Windows, veja aqui:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms740548 (v = vs.85) .aspx

No Windows 7, Windows Vista, Windows XP com Service Pack 2 (SP2) e Windows XP com Service Pack 3 (SP3), a capacidade de enviar tráfego por soquetes brutos foi restringida de várias maneiras:

s dados do TCP não podem ser enviados por soquetes brutos datagramas @UDP com um endereço de origem inválido não podem ser enviados por soquetes brutos. O endereço de origem IP de qualquer datagrama UDP de saída deve existir em uma interface de rede ou o datagrama é descartado. Essa alteração foi feita para limitar a capacidade do código malicioso de criar ataques distribuídos de negação de serviço e a capacidade de enviar pacotes falsificados (pacotes TCP / IP com um endereço IP de origem forjadoUma chamada para obindunção @ com um soquete bruto para oIPPROTO_TCP protocolo não é permitido.
Not Obind função @ com um soquete bruto é permitida para outros protocolos IPPROTO_IP, IPPROTO_UDP ouIPPROTO_SCTP, por exemplo)

questionAnswers(3)

yourAnswerToTheQuestion