I would recommend the use of IPNetwork Library https://github.com/lduchosal/ipnetwork.
As of version 2, it supports IPv4 and IPv6 as well.
IPv6
IPNetwork ipnetwork = IPNetwork.Parse("fe80::202:b3ff:fe1e:8329/24");
IPAddress ipaddress = IPAddress.Parse("2001:db8::");
IPAddress ipaddress2 = IPAddress.Parse("fe80::202:b3ff:fe1e:1");
bool contains1 = IPNetwork.Contains(ipnetwork, ipaddress);
bool contains2 = IPNetwork.Contains(ipnetwork, ipaddress2);
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress, contains1);
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
Output
fe80::/24 contains 2001:db8:: : False
fe80::/24 contains fe80::202:b3ff:fe1e:1 : True
IPv4
IPNetwork ipnetwork = IPNetwork.Parse("192.168.168.100/24");
IPAddress ipaddress = IPAddress.Parse("192.168.168.200");
IPAddress ipaddress2 = IPAddress.Parse("192.168.0.200");
bool contains1 = IPNetwork.Contains(ipnetwork, ipaddress);
bool contains2 = IPNetwork.Contains(ipnetwork, ipaddress2);
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress, contains1);
Console.WriteLine("{0} contains {1} : {2}", ipnetwork, ipaddress2, contains2);
Output
192.168.168.0/24 contains 192.168.168.200 : True
192.168.168.0/24 contains 192.168.0.200 : False
Have fun !