|
|
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.