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-t
can be used multiple times in a single command
- seg fault when using
--bin
with invalid ip version:and another one when using./build/ipcalc --bin=9 192.0.1.0
--isnet
without-s
:ipcalc --isnet 192.0.0.0
- document: the 'core/ipv4.h' functions, ...
- document: the
ipc_type()
function
- Makefile: add options:
install
anduninstall
- 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
ip
struct - use
getopt_long
orgetopt_long_only
instead ofgetopt
- handle errors like a pro
- think about making the while loop in
main
as the following steps:- check for option
- handle option
- log errors
- making some global options options subcommands, like
--bin
will be used without dashes (bin
). - provide some other optons like
--time
,--verbose
, ... and use bitwise operators to select them