Hi all
I am trying to build a network monitoring tool in Elixir that captures all network activity on a local /Private network.
Is there any dependency or erlang library that can help me achieve this?
Thanks!
Hi all
I am trying to build a network monitoring tool in Elixir that captures all network activity on a local /Private network.
Is there any dependency or erlang library that can help me achieve this?
Thanks!
Low-level socket access used to require a library like GitHub - msantos/procket: Erlang interface to low level socket operations. A sample snippet for network packet capture can be found in the README.
Recent OTP versions introduced the experimental socket module, which offers a similar feature set as ‘procket’, so it may now be possible to capture packets without any dependencies.
You do have to think about how to gain the necessary permissions: running your application as root is definitely not a good idea. You may be able to give the BEAM executable the necessary permissions with setcap
(see also this thread). The ‘sprocket’ library actually solves this issue with a small SUID helper.
Edit: you may also want to check out the other projects by the author of ‘procket’: some deal specifically with packet capture and BPF filters.