xref: /csrg-svn/lib/libc/net/inet_netof.c (revision 8360)
1*8360Ssam /*	inet_netof.c	4.1	82/10/07	*/
2*8360Ssam 
3*8360Ssam #include <sys/types.h>
4*8360Ssam #include <net/in.h>
5*8360Ssam 
6*8360Ssam /*
7*8360Ssam  * Return the network number from an internet
8*8360Ssam  * address; handles class a/b/c network #'s.
9*8360Ssam  */
10*8360Ssam in_netof(in)
11*8360Ssam 	struct in_addr in;
12*8360Ssam {
13*8360Ssam #if vax || pdp11
14*8360Ssam 	register u_long net;
15*8360Ssam 
16*8360Ssam 	if ((in.s_addr&IN_CLASSA) == 0)
17*8360Ssam 		return (in.s_addr & IN_CLASSA_NET);
18*8360Ssam 	if ((in.s_addr&IN_CLASSB) == 0)
19*8360Ssam 		return ((int)htons((u_short)(in.s_addr & IN_CLASSB_NET)));
20*8360Ssam 	net = htonl((u_long)(in.s_addr & IN_CLASSC_NET));
21*8360Ssam 	net >>= 8;
22*8360Ssam 	return ((int)net);
23*8360Ssam #else
24*8360Ssam 	return (IN_NETOF(in));
25*8360Ssam #endif
26*8360Ssam }
27