xref: /original-bsd/lib/libc/net/inet_netof.c (revision 0fc6f013)
1 /*
2  * Copyright (c) 1983 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 #if defined(LIBC_SCCS) && !defined(lint)
8 static char sccsid[] = "@(#)inet_netof.c	5.2 (Berkeley) 03/09/86";
9 #endif LIBC_SCCS and not lint
10 
11 #include <sys/types.h>
12 #include <netinet/in.h>
13 
14 /*
15  * Return the network number from an internet
16  * address; handles class a/b/c network #'s.
17  */
18 inet_netof(in)
19 	struct in_addr in;
20 {
21 	register u_long i = ntohl(in.s_addr);
22 
23 	if (IN_CLASSA(i))
24 		return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
25 	else if (IN_CLASSB(i))
26 		return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT);
27 	else
28 		return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
29 }
30