README.md

# GenICMP

GenICMP is a wrapper around `:gen_icmp` to make it more elixir friendly.

From the original README:

> gen_icmp aspires to be a simple interface for using ICMP and ICMPv6 sockets in Erlang, just like gen_tcp and gen_udp do for their protocol types; incidentally messing up Google searches for whomever someday writes a proper gen_icmp module.
> 
> gen_icmp uses procket to get a raw socket and abuses gen_udp for the socket handling. gen_icmp should work on Linux and BSDs.

Running this will require root privileges unless you have the `CAP_NET_RAW` capability set.
You can do so using `setcap cap_net_raw=ep /path/to/beam.smp`. Usually you can find the path using `which erl`, and then going to `../lib/erlang/erts-*/bin/beam.smp`.
Alternatively, you can check out the procket setuid helper documentation [here](https://github.com/msantos/procket#setuid-vs-sudo-vs-capabilities).

## Installation

The package can be installed by adding `gen_icmp_ex` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:gen_icmp_ex, "~> 0.1.0"}
  ]
end
```

## License

`GenICMP` is licensed under the [LGPL-3.0 License](https://ravy.dev/root/gen_icmp_ex/-/blob/main/LICENSE)

`:gen_icmp` is licensed under the [BSD 3-Clause License](https://github.com/msantos/gen_icmp/blob/master/LICENSE).