what this is
This is an implementation of an IP-stack (IPv4/IPv6). It will listen on a tap-, promiscuous, slip or ppp device for network frames containg e.g. ARP-requests, IP packets, ICMP(6), UDP and even NTP, VNC, SIP, MQTT and HTTP requests. Also LLDP, NDP, Socks, syslog, PPP, SLIP, NRPE, DNS (client), SCTP, MDNS, IRC (server) and SNMP. When multiple interfaces are configured, it can also route between them.
Note that this is an experimentation vehicle.
- C++ compiler
- POSIX system
how to build
Make sure you have the following packages installed:
- mkdir build
- cd build
- cmake ..
how to run
Look at 'example.cfg' to see what is possible.
Ideally you have a computer/virtual machine with 2 network-interfaces (or a serial port for PPP/SLIP). Then one port would be the usual LAN port, the other can be assigned to MyIP. The MyIP port can be used as a TAP-device or via "promiscuous-mode".
After you have started `myip', a 'myip' network device has appeared. Of course, your "local IP address" must be configured (remote is the MyIP instance, local is the Linux system; so for the example.ini: 192.168.3.2 is the MyIP address and you could e.g. add 192.168.3.1 to the 'myip' network interface).
...to see network statistics.
Run ./myiptop -j to see them as JSON.
The TCP functionality has some issues.
It listens to both IPv4 as well as IPv6. It performs HTTP over TCP but also over SCTP.
It also runs all other protocols supported by MyIP.
(C) 2020-2022 by Folkert van Heusden firstname.lastname@example.org
Released under Apache License v2.0
my_ip.wav is spoken by https://www.fiverr.com/stephbritishvo