1

Any C#/.Net equivalent methods, or managed code examples for INET_NTOA and INET_ATON?

FlappySocks
  • 3,772
  • 3
  • 32
  • 33

6 Answers6

3

The IPAddress class has static methods:

HostToNetworkOrder
NetworkToHostOrder 

With various overloads.

Richard
  • 106,783
  • 21
  • 203
  • 265
1

Have a look at this forum thread:

http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/00a001af-e01d-4590-82c1-1f6142eb8c34

Tony The Lion
  • 61,704
  • 67
  • 242
  • 415
1

Just to clarify, you're looking to parse a string representation of an IP Address, to an IPAddress object?

(That's my understanding of this article explaining INET_NTOA)

In that case ,it's System.Net.IPAddress.Parse("127.0.0.1"), and you can use the .ToString() off an IPAddress to get the string rep back out.

0

To make NTOA compatible with MySQL i had to do a Endian conversion

byte[] ip = BitConverter.GetBytes(ipInt);
Array.Reverse(ip);

IPAddress = new IPAddress(BitConverter.ToUInt32(ip,0))
FlappySocks
  • 3,772
  • 3
  • 32
  • 33
0

found this here:

string s = "174.36.207.186";

uint i = s.Split('.')
          .Select(uint.Parse)
          .Aggregate((a, b) => a * 256 + b);
Community
  • 1
  • 1
fubo
  • 44,811
  • 17
  • 103
  • 137
0

This is equivalent to INET_ATON and INET_NTOA in MySQL

public static uint INetA2N(string ip)
{
    try
    {
        uint result = ip.Split('.')
                        .Select(uint.Parse)
                        .Aggregate((a, b) => a * 256 + b);
        return result;
    }
    catch (System.Exception)
    {

        return 0;
    }
}

public static string InetN2A(uint ipValue)
{
    if (ipValue > 4294967295 || ipValue < 0)
        return string.Empty;

    return ((ipValue & 0xFF000000) / 16777216).ToString() + "." +
           ((ipValue & 0x00FF0000) / 65536).ToString() + "." +
           ((ipValue & 0x0000FF00) / 256).ToString() + "." +
           (ipValue & 0x000000FF).ToString();
}
Hanabi
  • 577
  • 4
  • 9