|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)inet.3 6.6 (Berkeley) 10/1/87
6: .\"
7: .TH INET 3N "October 1, 1987"
8: .UC 5
9: .SH NAME
10: inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof \- Internet address manipulation routines
11: .SH SYNOPSIS
12: .nf
13: .B "#include <sys/socket.h>
14: .B "#include <netinet/in.h>
15: .B "#include <arpa/inet.h>
16: .PP
17: .B "unsigned long inet_addr(cp)
18: .B "char *cp;
19: .PP
20: .B "unsigned long inet_network(cp)
21: .B "char *cp;
22: .PP
23: .B "char *inet_ntoa(in)
24: .B "struct in_addr in;
25: .PP
26: .B "struct in_addr inet_makeaddr(net, lna)
27: .B "int net, lna;
28: .PP
29: .B "unsigned long inet_lnaof(in)
30: .B "struct in_addr in;
31: .PP
32: .B "unsigned long inet_netof(in)
33: .B "struct in_addr in;
34: .fi
35: .SH DESCRIPTION
36: The routines
37: .I inet_addr
38: and
39: .I inet_network
40: each interpret character strings representing
41: numbers expressed in the Internet standard \*(lq.\*(rq
42: notation, returning numbers suitable for use
43: as Internet addresses and Internet network
44: numbers, respectively. The routine
45: .I inet_ntoa
46: takes an Internet address and returns an ASCII
47: string representing the address in \*(lq.\*(rq
48: notation. The routine
49: .I inet_makeaddr
50: takes an Internet network number and a local
51: network address and constructs an Internet address
52: from it. The routines
53: .I inet_netof
54: and
55: .I inet_lnaof
56: break apart Internet host addresses, returning
57: the network number and local network address part,
58: respectively.
59: .PP
60: All Internet address are returned in network
61: order (bytes ordered from left to right).
62: All network numbers and local address parts are
63: returned as machine format integer values.
64: .SH "INTERNET ADDRESSES"
65: Values specified using the \*(lq.\*(rq notation take one
66: of the following forms:
67: .RS
68: .nf
69: a.b.c.d
70: a.b.c
71: a.b
72: a
73: .RE
74: .fi
75: When four parts are specified, each is interpreted
76: as a byte of data and assigned, from left to right,
77: to the four bytes of an Internet address. Note
78: that when an Internet address is viewed as a 32-bit
79: integer quantity on the VAX the bytes referred to
80: above appear as \*(lqd.c.b.a\*(rq. That is, VAX bytes are
81: ordered from right to left.
82: .PP
83: When a three part address is specified, the last
84: part is interpreted as a 16-bit quantity and placed
85: in the right most two bytes of the network address.
86: This makes the three part address format convenient
87: for specifying Class B network addresses as
88: \*(lq128.net.host\*(rq.
89: .PP
90: When a two part address is supplied, the last part
91: is interpreted as a 24-bit quantity and placed in
92: the right most three bytes of the network address.
93: This makes the two part address format convenient
94: for specifying Class A network addresses as
95: \*(lqnet.host\*(rq.
96: .PP
97: When only one part is given, the value is stored
98: directly in the network address without any byte
99: rearrangement.
100: .PP
101: All numbers supplied as \*(lqparts\*(rq in a \*(lq.\*(rq notation
102: may be decimal, octal, or hexadecimal, as specified
103: in the C language (i.e., a leading 0x or 0X implies
104: hexadecimal; otherwise, a leading 0 implies octal;
105: otherwise, the number is interpreted as decimal).
106: .SH "SEE ALSO"
107: gethostbyname(3N), getnetent(3N), hosts(5), networks(5),
108: .SH DIAGNOSTICS
109: The constant \fBINADDR_NONE\fP is returned by
110: .I inet_addr
111: and
112: .I inet_network
113: for malformed requests.
114: .SH BUGS
115: The problem of host byte ordering versus network byte ordering is
116: confusing. A simple way to specify Class C network addresses in a manner
117: similar to that for Class B and Class A is needed.
118: The string returned by
119: .I inet_ntoa
120: resides in a static memory area.
121: .br
122: Inet_addr should return a struct in_addr.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.