Comment créer des paquets réseau de niveau inférieur dans node.js

Je travaille sur un projet dans lequel j’ai besoin de créer des paquets, tels que ICMP ECHO et d’autres paquets pour lesquels je peux démarrer la négociation TCP à 3 voies. Quelle est la meilleure façon de le faire node.js? Je ne vois pas de bibliothèques manipulant des paquets comme scappy (python) dans node.js. Tout ce que j’ai pour l’instant, c’est node-pcap, utilisé pour surveiller les paquets. Mais comment puis-je créer de nouveaux paquets à partir de zéro?

node.js n’offre actuellement pas d’API de socket brute et, autant que je sache, personne ne l’a encore implémenté comme module npm non plus, donc je ne pense pas que ce soit possible pour le moment.

Vous pouvez commencer avec node-pcap et append un paquet injecton à ses liaisons c ++ avec v8. Vous pourriez aussi probablement ouvrir un périphérique spécifique comme tuntap sous Linux et injecter des paquets à l’aide d’un stream. Je ne connais pas de liaisons qui permettent des ioctls arbitraires dans les nœuds, mais elles existent probablement.

Il existe un module sur npm qui vous donne access aux sockets brutes: https://npmjs.org/package/raw-socket