public static void Main()
uint intSubnetMask = ConvertToSubnet("10.0.128.0/19");
string strSubNetIP = toip(intSubnetMask);
bool blnResult = IsAddressOnSubnet("10.0.130.44", "10.0.128.0", strSubNetIP);
Console.WriteLine("Hello World : " + blnResult.ToString());
static bool IsAddressOnSubnet(string address, string subnet, string mask)
IPAddress Address = IPAddress.Parse(address);
IPAddress Subnet = IPAddress.Parse(subnet);
IPAddress Mask = IPAddress.Parse(mask);
Byte[] addressOctets = Address.GetAddressBytes();
Byte[] subnetOctets = Mask.GetAddressBytes();
Byte[] networkOctets = Subnet.GetAddressBytes();
return ((networkOctets[0] & subnetOctets[0]) == (addressOctets[0] & subnetOctets[0]))
&& ((networkOctets[1] & subnetOctets[1]) == (addressOctets[1] & subnetOctets[1]))
&& ((networkOctets[2] & subnetOctets[2]) == (addressOctets[2] & subnetOctets[2]))
&& ((networkOctets[3] & subnetOctets[3]) == (addressOctets[3] & subnetOctets[3]));
catch (System.Exception ex)
static uint ConvertToSubnet(string IP)
string[] parts = IP.Split('.', '/');
uint ipnum = (Convert.ToUInt32(parts[0]) << 24) | (Convert.ToUInt32(parts[1]) << 16) | (Convert.ToUInt32(parts[2]) << 8) | Convert.ToUInt32(parts[3]);
int maskbits = Convert.ToInt32(parts[4]);
mask <<= (32 - maskbits);
static string toip(uint ip)
return String.Format("{0}.{1}.{2}.{3}", ip >> 24, (ip >> 16) & 0xff, (ip >> 8) & 0xff, ip & 0xff);