ज़रूर, यह करने योग्य है। विचार यह है कि हम सबनेट मास्क की गणना सबसे महत्वपूर्ण बिट्स को 1 पर सेट करके करते हैं, जितने सबनेट वर्ग द्वारा निर्धारित किए जाते हैं। कक्षा सी के लिए, वह होगा
SELECT -1 << 8;
फिर, और आपके पास मौजूद आईपी पते के साथ सबनेट मास्क; यदि आईपी सबनेट के अंदर है, तो परिणाम सबनेट पते के बराबर होना चाहिए - मानक नेटवर्किंग सामग्री। तो हम इसके साथ समाप्त होते हैं:
SELECT (-1 << 8) & INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");
अपडेट करें: हाँ, नेटवर्क वर्ग को जानना आवश्यक है या सबनेट मास्क (जो समकक्ष जानकारी है)। विचार करें कि आप उस मामले को कैसे संभाल सकते हैं जहां सबनेट X.Y.0.0
. है अगर आपको यह जानकारी नहीं थी। क्या यह X.Y.0.0/16
है या X.Y.0.0/8
जहां तीसरा अष्टक बस होता है 0 होना? जानने का कोई तरीका नहीं है।
यदि आप सबनेट मास्क जानते हैं, तो क्वेरी को इस प्रकार लिखा जा सकता है
SELECT (-1 << (33 - INSTR(BIN(INET_ATON("255.255.255.0")), "0"))) &
INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");