/* --------------------------------------------------------------------- ** Figure 18.14: Decoding an Internet address. ** Print a 32-bit Internet IP address in standard form. ** --------------------------------------------------------------------- */ #include "tools.h" #define BYTEMASK 0xffL /* The L is to make a long integer. */ void main( void ) { unsigned long ip_address; unsigned f1, f2, f3, f4; banner(); printf( "\n Please enter an IP address address as 8 hex digits: " ); scanf( "%lx", &ip_address ); printf( "\t You have entered %08lx\n", ip_address ); f1 = ip_address >> 24 & BYTEMASK; f2 = ip_address >> 16 & BYTEMASK; f3 = ip_address >> 8 & BYTEMASK; f4 = ip_address & BYTEMASK; printf( "\t The IP address in standard form is: %i.%i.%i.%i\n", f1, f2, f3, f4 ); bye(); }