a cli tool for converting between decimal and binary versions of IPv4 and IPv6 addresses and do some operations on IP addresses, check features for more info.
SOON
- make
- gcc or clang
- initialization:
make init- compiling and installing:
make install- unistalling:
make uninstall-b, --bin convert decimal to binary
-t, --type network type: INTERFACE or NETWORK
-n, --net get network address
-h, --help print this help
--isnet check if it is a network address
--isint check if it is an interface address
Notes:
-b,-n, and-tcan be used multiple times in a single command
- seg fault when using
--binwith invalid ip version:and another one when using./build/ipcalc --bin=9 192.0.1.0
--isnetwithout-s:ipcalc --isnet 192.0.0.0
- document: the 'core/ipv4.h' functions, ...
- document: the
ipc_type()function
- Makefile: add options:
installanduninstall - Makefile: organize the dependancy graph
- feat: is network or interface ip address? (
--isnet,--isint,--type*) - feat: network address
- feat: broadcast address
- feat: usable host ip range
- feat: total number of hosts
- feat: number of usable hosts
- feat: subnet mask (for example '/16' <-> '255.255.0.0')
- feat: wildcard mask
- feat: binary ip (
--bin) - feat: ip class
- feat: CIDR notation (/24) of the subnet mask (255.255.255.0)
- feat: ip type: public or private
- feat: short notation, ex:
192.168.1.1/24 - feat: all possible addresses for the ip address
- feat: table of the number of hosts per subnet
- use
/instead of-s - remove replacable
fprintf()withlog_err() - make
log_err()accept multiple arguments likeprintf()family - solve all the warnings resulting from
make - make a script that remove comments from source code
- no comments script: deal with links, and other exceptions
- rename functions and variables
- use the belformat library
- add some examples to that README
- make an
ipstruct - use
getopt_longorgetopt_long_onlyinstead ofgetopt - handle errors like a pro
- think about making the while loop in
mainas the following steps:- check for option
- handle option
- log errors
- making some global options options subcommands, like
--binwill be used without dashes (bin). - provide some other optons like
--time,--verbose, ... and use bitwise operators to select them