Skip to content

Instantly share code, notes, and snippets.

@peterfoot
Created July 25, 2015 21:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peterfoot/2e767ff534ea6f090f6f to your computer and use it in GitHub Desktop.
Save peterfoot/2e767ff534ea6f090f6f to your computer and use it in GitHub Desktop.
namespace InTheHand.Net
{
/// <summary>
/// Helper network-order conversion functions for the Universal Windows Platform.
/// </summary>
public static class IPAddress
{
/// <summary>
/// Converts a short value from network byte order to host byte order.
/// </summary>
/// <param name="network">The number to convert, expressed in network byte order.</param>
/// <returns>A short value, expressed in host byte order.</returns>
public static short NetworkToHostOrder(short network)
{
return HostToNetworkOrder(network);
}
/// <summary>
/// Converts an integer value from network byte order to host byte order.
/// </summary>
/// <param name="network">The number to convert, expressed in network byte order. </param>
/// <returns>An integer value, expressed in host byte order.</returns>
public static int NetworkToHostOrder(int network)
{
return HostToNetworkOrder(network);
}
/// <summary>
/// Converts a long value from network byte order to host byte order.
/// </summary>
/// <param name="network">The number to convert, expressed in network byte order.</param>
/// <returns>A long value, expressed in host byte order.</returns>
public static long NetworkToHostOrder(long network)
{
return HostToNetworkOrder(network);
}
/// <summary>
/// Converts a short value from host byte order to network byte order.
/// </summary>
/// <param name="host">The number to convert, expressed in host byte order. </param>
/// <returns>A short value, expressed in network byte order.</returns>
public static short HostToNetworkOrder(short host)
{
return (short)((((int)host & 0xFF) << 8) | (int)((host >> 8) & 0xFF));
}
/// <summary>
/// Converts an integer value from host byte order to network byte order.
/// </summary>
/// <param name="host">The number to convert, expressed in host byte order. </param>
/// <returns>An integer value, expressed in network byte order.</returns>
public static int HostToNetworkOrder(int host)
{
return (((int)HostToNetworkOrder((short)host) & 0xFFFF) << 16)
| ((int)HostToNetworkOrder((short)(host >> 16)) & 0xFFFF);
}
/// <summary>
/// Converts a long value from host byte order to network byte order.
/// </summary>
/// <param name="host">The number to convert, expressed in host byte order. </param>
/// <returns>A long value, expressed in network byte order.</returns>
public static long HostToNetworkOrder(long host)
{
return (((long)HostToNetworkOrder((int)host) & 0xFFFFFFFF) << 32)
| ((long)HostToNetworkOrder((int)(host >> 32)) & 0xFFFFFFFF);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment