'
' Simple IP netmask calculator - needs BaCon 1.0 build 11 or higher.
'
' Calculate network IPv4 netmask from CIDR notation.
' See also: http://en.wikipedia.org/wiki/CIDR_notation
'
' PvE March 2010 - GPL
'------------------------------------------------------------------------

OPTION BASE 1

SPLIT ARGUMENT$ BY " " TO arg$ SIZE dim

IF dim < 2 THEN
    PRINT "Usage: ip <value> where value is in the range 1-32."
    END
ENDIF

mask = VAL(arg$[2])
byte = 0

PRINT NL$, "Netmask is: ";

WHILE mask > 8
    PRINT "255.";
    INCR byte
    DECR mask, 8
WEND

IF mask > 0 THEN
    PRINT 256 - POW(2, 8-mask);
    INCR byte
END IF

WHILE byte < 4
    PRINT ".0";
    INCR byte
WEND

PRINT NL$