Uploaded image for project: 'Log4net'
  1. Log4net
  2. LOG4NET-100

IPAddressConverter improvement for .NET 2 or .NET 3

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.2.10
    • 1.2.11
    • Other
    • None
    • .NET 2.0 or .NET 3.0

    Description

      log4net.Util.TypeConverters.IPAddressConverter uses only DNS query to get the IP address.
      But it may not convert an IP-address text properly especially on .NET 3.0.
      (Try Dns.GetHostEntry("127.0.0.1") on Vista. It returns some IPv4 and IPv6 addresses.)

      If you want to convert IP-address text directly, you should use IPAddress.Parse() or IPAddress.TryParse().
      You can also use Dns.GetHostAddresses(). It converts IP address properly.
      It would be better on .NET3. In .NET2, it seems not recognize IPv6 address.

      Here is a patch.

      ===================================================================
      — IPAddressConverter.cs (revision 468656)
      +++ IPAddressConverter.cs (working copy)
      @@ -77,8 +77,12 @@
      try
      {
      #if NET_2_0
      + // Try to parse the string as an IP address.
      + IPAddress addr;
      + if (IPAddress.TryParse(str, out addr))
      + return addr;
      +
      // Try to resolve via DNS. This is a blocking call.

      • // GetHostEntry works with either an IPAddress string or a host name
        IPHostEntry host = Dns.GetHostEntry(str);
        if (host != null &&
        host.AddressList != null &&

      Attachments

        1. IPAddressConverter.patch
          0.6 kB
          Iwasa Kazmi

        Activity

          People

            nicko Nicko Cadell
            kzmi Iwasa Kazmi
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: