मैं आईपीनेटवर्क लाइब्रेरी https://github.com/lduchosal/ipnetwork के उपयोग की अनुशंसा करता हूं। संस्करण 2 के रूप में, यह आईपीवी 4 और आईपीवी 6 का भी समर्थन करता है।
आईपीवी 6
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);
आउटपुट
fe80::/24 contains 2001:db8:: : False
fe80::/24 contains fe80::202:b3ff:fe1e:1 : True
आईपीवी 4
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);
आउटपुट
192.168.168.0/24 contains 192.168.168.200 : True
192.168.168.0/24 contains 192.168.0.200 : False
मज़े करो!
क्या आप आईपीवी 4 केवल समाधान देखने में रुचि रखते हैं? – Tung
नहीं आईपीवी 4 बहुत आसान है। आईपीवी 6, या जब दो प्रारूप मिश्रित होते हैं तो यह चुनौतीपूर्ण बनाता है। यहां प्रतिक्रियाओं की कमी के आधार पर, ऐसा लगता है कि बहुत से लोग इसके बारे में परवाह नहीं करते हैं ... – ahmd0