#include <stdio.h>

int main(int argc, char **argv)
{
	int netmask, hostbits, network, broadcast;
	int ip, cidr;
	int t[5];

	char *ip_string="208.179.59.195/27";
	
	sscanf(ip_string, "%i.%i.%i.%i/%i",
		&t[0], &t[1], &t[2], &t[3], &t[4]);
	
	ip=(t[0]<<24)+(t[1]<<16)+(t[2]<<8)+t[3];
	cidr=t[4];

	hostbits=(1<<(32-cidr))-1;
	netmask=~hostbits;

	network=ip & netmask;
	broadcast=(ip & netmask)+hostbits;
	
	fprintf(stdout, "IP: %i.%i.%i.%i/%i\n",
		(ip>>24)&0xff, (ip>>16)&0xff, (ip>>8)&0xff, ip&0xff, cidr);
	fprintf(stdout, "NW: %i.%i.%i.%i\n",
		(network>>24)&0xff, (network>>16)&0xff, (network>>8)&0xff, network&0xff);
	fprintf(stdout, "BC: %i.%i.%i.%i\n",
		(broadcast>>24)&0xff, (broadcast>>16)&0xff, (broadcast>>8)&0xff, broadcast&0xff);
	
}
