Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



tcllib_ip(n)                                 Domain Name Service                                tcllib_ip(n)



____________________________________________________________________________________________________________

NAME
       tcllib_ip - IPv4 and IPv6 address manipulation

SYNOPSIS
       package require Tcl  8.2

       package require ip  ?1.2?

       ::ip::version address

       ::ip::is class address

       ::ip::equal address address

       ::ip::normalize address

       ::ip::contract address

       ::ip::prefix address

       ::ip::type address

       ::ip::mask address

       ::ip::prefixToNative prefix

       ::ip::nativeToPrefix nativeList|native ?-ipv4?

       ::ip::intToString number ?-ipv4?

       ::ip::toInteger ipaddr

       ::ip::toHex ipaddr

       ::ip::maskToInt ipmask

       ::ip::broadcastAddress prefix ?-ipv4?

       ::ip::maskToLength dottedMask|integerMask|hexMask ?-ipv4?

       ::ip::lengthToMask maskLength ?-ipv4?

       ::ip::nextNet ipaddr ipmask ?count? ?-ipv4?

       ::ip::isOverlap prefix prefix...

       ::ip::isOverlapNative ?-all? ?-inline? ?-ipv4? hexipaddr hexipmask hexiplist

       ::ip::ipToLayer2Multicast ipaddr

       ::ip::ipHostFromPrefix prefix ?-exclude prefixExcludeList?

       ::ip::reduceToAggregates prefixlist

       ::ip::longestPrefixMatch ipaddr prefixlist ?-ipv4?

       ::ip::collapse prefixlist

       ::ip::subtract prefixlist

____________________________________________________________________________________________________________

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

COMMANDS
       ::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::prefixToNative prefix
              This command converts the string prefix from dotted form (<ipaddr>/<mask>  format)  to  native
              (hex)  form.  Returns  a  list  containing two elements, ipaddress and mask, in this order, in
              hexadecimal notation.


                 % ip::prefixToNative 1.1.1.0/24
                 0x01010100 0xffffff00


       ::ip::nativeToPrefix nativeList|native ?-ipv4?
              This command converts from native (hex)  form  to  dotted  form.   It  is  the  complement  of
              ::ip::prefixToNative.


              list nativeList (in)
                     List  of  several ip addresses in native form. The native form is a list as returned by
                     ::ip::prefixToNative.

              list native (in)
                     A list as returned by ::ip::prefixToNative.

       The command returns a list of addresses in dotted form if it was called with  a  list  of  addresses.
       Otherwise a single address in dotted form is returned.


          % ip::nativeToPrefix {0x01010100 0xffffff00} -ipv4
          1.1.1.0/24


       ::ip::intToString number ?-ipv4?
              This command converts from an ip address specified as integer number to dotted form.


                     ip::intToString 4294967295
                     255.255.255.255


       ::ip::toInteger ipaddr
              This command converts a dotted form ip into an integer number.


                 % ::ip::toInteger 1.1.1.0
                 16843008


       ::ip::toHex ipaddr
              This command converts dotted form ip into a hexadecimal number.


                 % ::ip::toHex 1.1.1.0
                 0x01010100


       ::ip::maskToInt ipmask
              This  command convert an ipmask in either dotted (255.255.255.0) form or mask length form (24)
              into an integer number.


                 ::ip::maskToInt 24
                 4294967040


       ::ip::broadcastAddress prefix ?-ipv4?
              This commands returns a broadcast address in dotted form for the given route prefix, either in
              the form "addr/mask", or in native form. The result is in dotted form.


                 ::ip::broadcastAddress 1.1.1.0/24
                 1.1.1.255

                 ::ip::broadcastAddress {0x01010100 0xffffff00}
                 0x010101ff





       ::ip::maskToLength dottedMask|integerMask|hexMask ?-ipv4?


              This command converts the dotted or integer form of an ipmask to the mask length form.







                 ::ip::maskToLength 0xffffff00 -ipv4
                 24

                 % ::ip::maskToLength 255.255.255.0
                 24


       ::ip::lengthToMask maskLength ?-ipv4?
              This command converts an ipmask in mask length form to its dotted form.


                 ::ip::lengthToMask 24
                 255.255.255.0


       ::ip::nextNet ipaddr ipmask ?count? ?-ipv4?
              This  command returns an ipaddress in the same position in the count next network. The default
              value for count is 1.

              The address can be specified as either integer number or in dotted form. The mask can be spec-ified specified
              ified as either integer number, dotted form, or mask length form.

              The result is in hex form.

       ::ip::isOverlap prefix prefix...
              This command checks if the given ip prefixes overlap.  All arguments are in dotted "addr/mask"
              form. All arguments after the first prefix are compared against the first prefix.  The  result
              is a boolean value. It is true if an overlap was found for any of the prefixes.


                % ::ip::isOverlap 1.1.1.0/24 2.1.0.1/32
                0

                ::ip::isOverlap 1.1.1.0/24 2.1.0.1/32 1.1.1.1/32
                1


       ::ip::isOverlapNative ?-all? ?-inline? ?-ipv4? hexipaddr hexipmask hexiplist
              This  command is similar to ::ip::isOverlap, however the arguments are in the native form, and
              the form of the result is under greater control of the caller.  If the option -all  is  speci-fied specified
              fied  it  checks  all  addresses  for  overlap, not only until the first one is found.  If the
              option -inline is specified the command returns the overlapping prefix instead of  index  val-ues. values.
              ues.

              The result of the command is, depending on the specified options,

              no options
                     The index of the first overlap found, or 0 if there is none.

              -all   A  list  containing  the  indices  of all overlaps found, or an empty list if there are
                     none.

              -inline
                     The first overlapping prefix, or an empoty string if there is none.

              -all -inline
                     A list containing the prefixes of all overlaps found, or an empty  list  if  there  are
                     none.


         % ::ip::isOverlapNative 0x01010100 0xffffff00 {{0x02010001 0xffffffff}}
         0

         % ::ip::isOverlapNative 0x01010100 0xffffff00 {{0x02010001 0xffffffff} {0x01010101 0xffffffff}}
         2


       ::ip::ipToLayer2Multicast ipaddr
              This command an converts ipv4 address in dotted form into a layer 2 multicast address, also in
              dotted form.


                % ::ip::ipToLayer2Multicast 224.0.0.2
                01.00.5e.00.00.02


       ::ip::ipHostFromPrefix prefix ?-exclude prefixExcludeList?
              This command returns a host address from a prefix in the form  "ipaddr/masklen",  also  making
              sure  that  the  result is not an address found in the prefixExcludeList.  The result is an ip
              address in dotted form.


                %::ip::ipHostFromPrefix  1.1.1.5/24
                1.1.1.1

                %::ip::ipHostFromPrefix  1.1.1.1/32
                1.1.1.1


       ::ip::reduceToAggregates prefixlist
              This command finds nets that overlap and filters out the more specific nets. The prefixes  are
              in  either  addr/mask form or in native format.  The result is a list containing the non-over-lapping non-overlapping
              lapping ip prefixes from the input.


                % ::ip::reduceToAggregates {1.1.1.0/24 1.1.0.0/8  2.1.1.0/24 1.1.1.1/32 }
                1.0.0.0/8 2.1.1.0/24


       ::ip::longestPrefixMatch ipaddr prefixlist ?-ipv4?
              This command finds longest prefix match from set of prefixes, given a specific  host  address.
              The  prefixes  in the list are in either native or dotted form, whereas the host address is in
              either ipprefix format, dotted form, or integer form.  The result is the prefix which  is  the
              most specific match to the host address.


                % ::ip::longestPrefixMatch 1.1.1.1 {1.1.1.0/24 1.0.0.0/8  2.1.1.0/24 1.1.1.0/28 }
                1.1.1.0/28


       ::ip::collapse prefixlist
              This  commands  takes a list of prefixes and returns a list prefixes with the largest possible
              subnet masks covering the input, in this  manner  collapsing  adjacent  prefixes  into  larger
              ranges.

              This  is different from ::ip::reduceToAggregates in that the latter only removes specific nets
              from a list when they are covered by other elements of the input whereas this command actively
              merges nets into larger ranges when they are adjacent to each other.


              % ::ip::collapse {1.2.2.0/24 1.2.3.0/24}
              1.2.2.0/23


       ::ip::subtract prefixlist
              This command takes a list of prefixes, some of which are prefixed by a dash. These latter neg-ative negative
              ative prefixes are used to punch holes into the ranges described by the other, positive,  pre-fixes. prefixes.
              fixes.  I.e.  the  negative  prefixes  are  subtracted frrom the positive ones, resulting in a
              larger list of describes describing the covered ranges only as positives.


EXAMPLES
       % 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


REFERENCES
       [1]    Postel, J. "Internet Protocol." RFC 791,  September 1981, (http://www.ietf.org/rfc/rfc791.txt)

       [2]    Hinden,  R. and Deering, S., "Internet Protocol Version 6 (IPv6) Addressing Architecture", RFC
              3513, April 2003 (http://www.ietf.org/rfc/rfc3513.txt)


AUTHORS
       Pat Thoyts

BUGS, IDEAS, FEEDBACK
       This document, and the package it describes,  will  undoubtedly  contain  bugs  and  other  problems.
       Please   report   such   in   the   category   dns   of   the   Tcllib  SF  Trackers  [http://source -
       forge.net/tracker/? group_id=12883].  Please also report any ideas for enhancements you may  have  for
       either package and/or documentation.

SEE ALSO
       inet(3), ip(7), ipv6(7)

KEYWORDS
       internet address, ip, ipv4, ipv6, rfc 3513

CATEGORY
       Networking

COPYRIGHT
       Copyright (c) 2004, Pat Thoyts
       Copyright (c) 2005 Aamer Akhter <aakhter@cisco.com>




dns                                                  1.3                                        tcllib_ip(n)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации со ссылками на отзыв ниже.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API через Генератор отчетов Ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.