tcllib_ip(n) 1.0.0 dns "dns"
tcllib_ip - IPv4 and IPv6 address manipulation
TABLE OF CONTENTS
SYNOPSIS
DESCRIPTION
COMMANDS
EXAMPLES
REFERENCES
AUTHORS
SEE ALSO
KEYWORDS
COPYRIGHT
package require Tcl 8.2
package require ip ?1.0.0?
This package provides a set of commands to help in parsing, displaying
and comparing internet addresses. The package can handle both IPv4 (1)
and IPv6 (2) address types.
- ::ip::version address
-
Returns the protocol version of the address (4 or 6) or 0 if the
address is neither IPv4 or IPv6.
- ::ip::is class address
-
Returns true if the address is a member of the given protocol
class. The class parameter may be either ipv4 or ipv6
This is effectively a boolean equivalent of the version
command. The class argument may be shortened to 4 or
6.
- ::ip::equal address address
-
Compare two address specifications for equivalence. The arguments are
normalized and the address prefix determined (if a mask is
supplied). The normalized addresses are then compared bit-by-bit and
the procedure returns true if they match.
- ::ip::normalize address
-
Convert an IPv4 or IPv6 address into a fully expanded version. There
are various shorthand ways to write internet addresses, missing out
redundant parts or digts.. This procedure is the opposite of
contract.
- ::ip::contract address
-
Convert a normalized internet address into a more compact form
suitable for displaying to users.
- ::ip::prefix address
-
Returns the address prefix generated by masking the address part with
the mask if provided. If there is no mask then it is equivalent to
calling normalize
- ::ip::type address
-
- ::ip::mask address
-
If the address supplied includes a mask then this is returned
otherwise returns an empty string.
|
% ip::version ::1
6
% ip::version 127.0.0.1
4
|
|
% ip::normalize 127/8
127.0.0.0/8
% ip::contract 192.168.0.0
192.168
%
% ip::normalize fec0::1
fec0:0000:0000:0000:0000:0000:0000:0001
% ip::contract fec0:0000:0000:0000:0000:0000:0000:0001
fec0::1
|
|
% ip::equal 192.168.0.4/16 192.168.0.0/16
1
% ip::equal fec0::1/10 fec0::fe01/10
1
|
-
Postel, J. "Internet Protocol." RFC 791, September 1981,
(http://www.ietf.org/rfc/rfc791.txt)
-
Hinden, R. and Deering, S.,
"Internet Protocol Version 6 (IPv6) Addressing Architecture",
RFC 3513, April 2003
(http://www.ietf.org/rfc/rfc3513.txt)
Pat Thoyts
inet(3), ip(7), ipv6(7)
internet address, ip, ipv4, ipv6, rfc 3513
Copyright © 2004, Pat Thoyts