1

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

FlappySocks
  • 3,674
  • 3
  • 31
  • 31

6 Answers6

3

The IPAddress class has static methods:

HostToNetworkOrder
NetworkToHostOrder 

With various overloads.

Richard
  • 103,472
  • 21
  • 199
  • 258
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
  • 59,704
  • 62
  • 233
  • 403
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,674
  • 3
  • 31
  • 31
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
  • 42,334
  • 17
  • 98
  • 130
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
  • 377
  • 2
  • 7