Ping and FTP Resolve IP Address with Leading Zero as Octal

Last reviewed: March 25, 1997
Article ID: Q115388

The information in this article applies to:
  • Microsoft Windows NT operating system version 3.1
  • Microsoft Windows NT Advanced Server version 3.1
  • Microsoft Windows NT Workstation version 3.5
  • Microsoft Windows NT Server version 3.5
  • Microsoft TCP/IP-32
  • Microsoft Windows for Workgroups version 3.11
  • Microsoft Windows NT Server version 4.0
  • Microsoft Windows NT Workstation version 4.0

SUMMARY

Windows for Workgroups with TCP/IP-32 and Windows NT Ping and FTP accept Internet Protocol (IP) addresses comprised of decimal, octal, or hexadecimal numbers as command line parameters. This can cause confusion if you unintentionally use a leading zero in a decimal octet. With a leading zero, the number is resolved by these utilities as an octal number, thus specifying the wrong IP address. This results in Ping verifying an address that you do not intend to ping or FTP trying to connect to an address that you do not intend to connect to.

MORE INFORMATION

Many TCP/IP programs such as Ping and FTP use the inet_addr() sockets function to translate IP address strings into 4-byte addresses. This function accepts an IP address in standard decimal, octal, and hexadecimal notation, such that the following IP address examples are acceptable to Ping and FTP and resolve to the same IP address:

   22.101.31.153 (decimal)
   026.101.31.153 (octal)
   0x16.101.31.153 (hexadecimal)
   0x16.101.037.153 (a combination of all three number systems)

If you unintentionally enter a leading zero in an octet, the IP address that Ping and FTP resolve is not the same as you intended, as in the following example (using Ping):

   In Windows NT 3.1:

      c:\>ping 022.101.31.153
      Pinging host 022.101.31.153 (unnamed) : 18.101.31.153
      ICMP Echo Reply:TTL 32
      ICMP Echo Reply:TTL 32
      ICMP Echo Reply:TTL 32
      ICMP Echo Reply:TTL 32
      Host 022.101.31.153 replied to all 4 of the 4 pings

   In Windows NT 3.5:

      c:\>ping 022.101.31.153
      Pinging 18.101.31.153 with 32 bytes of data:
      Ping succeeded: 32 bytes time=10ms TTL=32
      Ping succeeded: 32 bytes time=10ms TTL=32
      Ping succeeded: 32 bytes time=10ms TTL=32
      Ping succeeded: 32 bytes time=10ms TTL=32

NOTE: In this example, 022.101.31.153 is resolved by Ping to be 18.101.31.153 decimal, not 22.101.31.153 decimal.

This results in either a successful (shown above) or unsuccessful verification of the wrong IP address, depending on whether the resolved IP address is a valid IP address in your network environment.

To avoid an address being incorrectly resolved by Ping or FTP as illustrated above, it is recommended that you check for and remove leading zeros in the IP address entered on the command line, unless an octal number is intended.


Additional query words: prodnt
Keywords : kbnetwork NTSrvWkst nttcp
Version : 3.1 3.11 3.5 4.0
Platform : WinNT


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: March 25, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.