Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जांचें कि क्या आईपी सबनेट में है

ज़रूर, यह करने योग्य है। विचार यह है कि हम सबनेट मास्क की गणना सबसे महत्वपूर्ण बिट्स को 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");


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या MySQL सी में कॉलबैक की अनुमति देता है जैसे कि जब कोई बदलाव होता है, तो मुझे अधिसूचित किया जा सकता है?

  2. MySQL में डायनामिक SQL के साथ कर्सर बनाना

  3. SQL:खोज/प्रतिस्थापन लेकिन केवल पहली बार कोई मान रिकॉर्ड में प्रकट होता है

  4. mysql सभी या 0 टाइमस्टैम्प लौटाते हुए a और b के बीच टाइमस्टैम्प का चयन करें

  5. SHOW PROCESSLIST . से पूरी क्वेरी कैसे देखें?