All Projects → hauleth → gen_icmp

hauleth / gen_icmp

Licence: Apache-2.0 license
ICMP protocol implementation for Erlang without NIFs

Programming Languages

erlang
1774 projects

Projects that are alternatives of or similar to gen icmp

ddos
Simple dos attack utility
Stars: ✭ 36 (+38.46%)
Mutual labels:  ping, icmp, icmp-ping
pexpo
💻 Terminal sending ping tool written in Go.
Stars: ✭ 89 (+242.31%)
Mutual labels:  ping, icmp
ComputerNetworks-unipd2018
Tips and resources to easily pass the "Computer Networks" practical exam ("Reti di calcolatori") in Padua
Stars: ✭ 21 (-19.23%)
Mutual labels:  ping, icmp
ICMP-server
simple web app that use icmp protocol to check some devices if there are up or not
Stars: ✭ 16 (-38.46%)
Mutual labels:  ping, icmp
Pingtop
🏓Ping multiple servers and show results in a top-like terminal UI.
Stars: ✭ 328 (+1161.54%)
Mutual labels:  ping, icmp
BackToTheFuture
Respond to pings before they even arrive at the server
Stars: ✭ 18 (-30.77%)
Mutual labels:  ping, icmp
icmpmon
A simple ICMP monitor with web interface.
Stars: ✭ 33 (+26.92%)
Mutual labels:  ping, icmp
Pingtunnel
ping tunnel is a tool that advertises tcp/udp/socks5 traffic as icmp traffic for forwarding.
Stars: ✭ 1,904 (+7223.08%)
Mutual labels:  ping, icmp
Networkmanager
A powerful tool for managing networks and troubleshoot network problems!
Stars: ✭ 1,296 (+4884.62%)
Mutual labels:  ping, icmp
Icmplib
Easily forge ICMP packets and make your own ping and traceroute.
Stars: ✭ 58 (+123.08%)
Mutual labels:  ping, icmp
kping
Large Scale, High Performance flood ping.
Stars: ✭ 16 (-38.46%)
Mutual labels:  ping, icmp
Go Ping
A simple ping library using ICMP echo requests.
Stars: ✭ 158 (+507.69%)
Mutual labels:  ping, icmp
Fping
High performance ping tool
Stars: ✭ 652 (+2407.69%)
Mutual labels:  ping, icmp
Ping exporter
Prometheus exporter for ICMP echo requests using https://github.com/digineo/go-ping
Stars: ✭ 134 (+415.38%)
Mutual labels:  ping, icmp
pingo
Ping library for Golang with multi-host support
Stars: ✭ 36 (+38.46%)
Mutual labels:  ping, icmp
Pshell
ICMP/IP tunnel manager for Linux.
Stars: ✭ 24 (-7.69%)
Mutual labels:  icmp
webping
🚦 Python script to monitor web pages.
Stars: ✭ 20 (-23.08%)
Mutual labels:  ping
ping-multi
Interactively ping multiple hosts from one location
Stars: ✭ 15 (-42.31%)
Mutual labels:  ping
udp2raw
A Tunnel which Turns UDP Traffic into Encrypted UDP/FakeTCP/ICMP Traffic by using Raw Socket,helps you Bypass UDP FireWalls(or Unstable UDP Environment)
Stars: ✭ 5,256 (+20115.38%)
Mutual labels:  icmp
net-protocol
golang模拟内核协议栈 实现链路层、网络层、传输层、应用层 用户态协议栈 ,基于虚拟网卡TUN/TAP
Stars: ✭ 129 (+396.15%)
Mutual labels:  icmp

gen_icmp

ICMP implementation for Erlang using socket (so for now only Unix support).

Usage

To send ICMP echo request as unprivileged user (works on macOS and Linux if user group is within sysctl net.ipv4.ping_group_range):

{ok, Socket} = gen_icmp:open().

Addr = {127, 0, 0, 1}.

ok = gen_icmp:echoreq(Socket, Addr, <<1,2,3,4>>).

receive
    {icmp, Addr, {echorep, #{data := <<1,2,3,4>>}}} -> ok
end.

If you want to be sure of message order you can use seq option:

{ok, Socket} = gen_icmp:open().

Addr = {127, 0, 0, 1}.

ok = gen_icmp:echoreq(Socket, Addr, <<1,2,3,4>>, [{seq, 0}]).
ok = gen_icmp:echoreq(Socket, Addr, <<5,6,7,8>>, [{seq, 1}]).

receive
    {icmp, Addr, {echorep, #{seq := Seq, data := Data}}} ->
      io:write("Received reply seq=~B data=~p~n", [Seq, Data])
end.

License

See Apache 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].