Ящик nix
является хорошей оболочкой для lib c для работы с необработанными сокетами, но оказывается, что он поддерживает протоколы TCP и UDP только для этих необработанных сокетов . Я хочу использовать, скажем, ICMP поверх необработанных сокетов - например, я хочу использовать sendto
с пакетом ICMP, чтобы он был завернут в заголовок IP + заголовок Ethe rnet, прежде чем отправиться в сеть, так же, как это было бы со стандартными функциями lib c. Есть ли какие-нибудь обертки / ящики, которые поддерживают это, и я не прибегаю к самому уродливому FFI? Было бы замечательно, если бы был способ использовать getprotobyname
или что-то подобное с nix.