xref: /csrg-svn/lib/libc/net/inet_netof.c (revision 8370)
1*8370Ssam /*	inet_netof.c	4.2	82/10/07	*/
28360Ssam 
38360Ssam #include <sys/types.h>
48360Ssam #include <net/in.h>
58360Ssam 
68360Ssam /*
78360Ssam  * Return the network number from an internet
88360Ssam  * address; handles class a/b/c network #'s.
98360Ssam  */
10*8370Ssam inet_netof(in)
118360Ssam 	struct in_addr in;
128360Ssam {
138360Ssam #if vax || pdp11
148360Ssam 	register u_long net;
158360Ssam 
168360Ssam 	if ((in.s_addr&IN_CLASSA) == 0)
178360Ssam 		return (in.s_addr & IN_CLASSA_NET);
188360Ssam 	if ((in.s_addr&IN_CLASSB) == 0)
198360Ssam 		return ((int)htons((u_short)(in.s_addr & IN_CLASSB_NET)));
208360Ssam 	net = htonl((u_long)(in.s_addr & IN_CLASSC_NET));
218360Ssam 	net >>= 8;
228360Ssam 	return ((int)net);
238360Ssam #else
248360Ssam 	return (IN_NETOF(in));
258360Ssam #endif
268360Ssam }
27