Skip to content

Instantly share code, notes, and snippets.

@skinny
Created June 4, 2013 23:34
Show Gist options
  • Save skinny/5710526 to your computer and use it in GitHub Desktop.
Save skinny/5710526 to your computer and use it in GitHub Desktop.
public static bool IsInSubnet(this IPAddress address, string subnets)
{
if (String.IsNullOrEmpty(subnets))
return false; // default allowed or not ?
if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
{
return false;
}
var subnet_splitted = subnets.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
return subnet_splitted.Any(subnet =>
{
var parts = subnet.Split('/');
var target = IPAddress.Parse(parts[0]);
IPAddress mask = new IPAddress(mask32);
if (parts.Length > 1)
IPAddress.TryParse(parts[1], out mask);
IPAddress network1 = address.GetNetworkAddress(mask);
IPAddress network2 = target.GetNetworkAddress(mask);
return network1.Equals(network2);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment