Я делаю захват сети с помощью Network.Pcap
( pcap ) и планирую провести некоторые проверки с использованием Net.PacketParsing
( network-house ).Для этого, похоже, мне нужно поместить мой пакет в
Pcap.Callback :: PktHdr -> Ptr Word8 -> IO ()
или
Pcap.CallbackBS :: PktHdr -> ByteString -> IO ().
и работать с пакетом как 'Ptr Word8' или 'ByteString».На стороне разбора пакета у меня есть:
Net.Packet.toInPack :: UArray Int Word8 -> InPacket
, чтобы получить тип InPacket
, необходимый для анализа.Итак, мне осталось преобразовать Ptr или ByteString в UArray - либо чисто, либо в IO.Я полагаю, что могу распаковать ByteString
в [Word8]
, а оттуда в UArray
, но, похоже, должен быть лучший способ.
Я также обеспокоен своим выбором библиотек,В прошлом я использовал network-house и нашел его довольно хорошим, но он стареет и использует UArray, который сам по себе выглядит немного архаичным.Так что предложения о лучшей отправной точке приветствуются.