यहां परिदृश्य है ... मेरे पास सबनेट्स की एक तालिका है। (नीचे देखें) मेरे पास एक आईपी पता है। मैं यह जानना चाहता हूं कि तालिका में लुकअप के आधार पर आईपी पता किस सबनेट से संबंधित है। तब इस संगठन का उपयोग यह निर्धारित करने के लिए किया जाएगा कि उपयोगकर्ता किस स्थान पर है। यह एक निजी नेटवर्क स्थान है इसलिए स्थान लुकअप के लिए मानक इंटरनेट लागू नहीं होगा। सबसे अच्छा तरीका क्या होगा? क्या मुझे आईपी एड्रेस को इसके न्यूमेरिक हिस्सों में तोड़ने और सभी सबनेट्स के खिलाफ थोड़ी सी तुलना करने की ज़रूरत है .. या जावा एपीआई में अंतर्निहित टूल्स हैं जो आईपी एड्रेस को सबनेट मास्क की तुलना करने के लिए अपना जीवन आसान बना सकते हैं?सबनेट मास्क की एक तालिका में एक आईपी पता मिलान ... जावा में सबसे अच्छा तरीका क्या है?
मैं मुख्य रूप से किसी दिए गए सबनेटमास्क में आईपैड्रेस की तुलना करने और इस मैचों को हां निर्धारित करने का सर्वोत्तम तरीका ढूंढ रहा हूं, या नहीं .. वैकल्पिक रूप से। सूची को स्टोर करने और न्यूनतम संचालन के साथ खोज करने के बारे में कोई सुझाव भी सराहना की जाएगी।
आदर्श रूप में मैं इस के समान कुछ कर रही होगी:
List subnetInfo = null;
subnetInfo = findSubnet('192.168.0.1'); //value null if nothing found
....
//return null if nothing found
List findSubnet(String ipaddress) {
List subnetDetails = null;
.... code here ...
return subnetDetails;
}
तालिका 1: सबनेट
dk-ballerup-gen-off-v411 10.172.80.0/21 NANR-denmark-ballerup-metallbuen66-ground-first-floors-incl-dhcp-(sr14585203)
ae-dubai-ofssl-gen-off-v410 10.172.88.0/24 NANR-arab-emirates-ofssl-iflex-general-office-v410-(sr12781477)
ru-stpetersburg-gen-off-v411 10.172.89.0/24 NANR-russia-stpetersburg-general-office-incl-dhcp (bsteinba)
आपको किसी एपीआई की आवश्यकता क्यों है जिसके लिए आप ऑपरेटर के साथ जांच कर सकते हैं? ... यही कारण है कि netmasks * netmasks कहा जाता है ... – EJP
क्योंकि एक सीआईडीआर मास्क को किसी संख्या में बदलना एक ऐसा काम है जिसे आप आसानी से गलत कर सकते हैं। जब आप इसे शेल्फ से निकाल सकते हैं, तो इसे फिर से कार्यान्वित क्यों करें? – skaffman
आप मजाक कर रहे हैं, है ना? आपको बाइट्स को एक पूर्णांक में भी परिवर्तित नहीं करना है, आप बस लूप में बाइट्स को मास्क कर सकते हैं। कोड की लगभग 4 लाइनें। – EJP