2008-10-20 6 views
13

मैं जावा पुस्तकालय की तलाश में हूं जो नेटवर्क गणित की दिशा में तैयार है और पहले ही परीक्षण किया गया है। कुछ विशेष रूप से फैंसी नहीं, बस कुछ और ips और सबनेट्स रखने के लिए, और सबनेट मास्क प्रिंट करने जैसी चीजें करें या गणना करें कि आईपी किसी दिए गए सबनेट के भीतर है या नहीं।नेटवर्क गणित के लिए एक अच्छी जावा लाइब्रेरी

क्या मुझे अपना खुद का रोल करना चाहिए, या इसके लिए पहले से ही एक मजबूत पुस्तकालय है?

उत्तर

5

हमने जावा आईपीवी 4 अंकगणित लाइब्रेरी विकसित की है। इसे यहां देखें: http://tufar.com/ipcalculator/ यह बीएसडी लाइसेंस के तहत है।

4

org.apache.lenya.ac.IPRange इन सुविधाओं में प्रतीत होता है।

अपाचे लेनया प्रोजेक्ट एक ओपन-सोर्स सामग्री प्रबंधन प्रणाली है। यह अपाचे लाइसेंस का उपयोग करता है, इसलिए आप केवल उस कोड का पुन: उपयोग कर सकते हैं जिसकी आपको आवश्यकता है। (लेकिन हमेशा के रूप में, license स्वयं को पढ़ें; इंटरनेट पर किसी व्यक्ति से कानूनी सलाह पर भरोसा न करें! :-)

+0

org.apache.lenya.ac.IPRange निश्चित रूप से करने के लिए संशोधित किया जा सकता

यहाँ एक IPv6 पता किसी सबनेट में है अगर परीक्षण के लिए कुछ उदाहरण कोड है मेरी जरूरतों को पूरा करें, प्रतिक्रिया के लिए धन्यवाद। उस ने कहा, मैं कुछ और सामान्य खोजने की उम्मीद कर रहा था, जैसे कि जावा के पर्ल के आईपी :: नेटएड्रर के बराबर। – perilandmishap

0

open-source IPAddress Java library आईपी एड्रेस मैनिपुलेशन जैसे आईपीवी 4/आईपीवी 6 और सबनेट जांच से रूपांतरण कर सकते हैं। अस्वीकरण: मैं प्रोजेक्ट मैनेजर हूं।

यह मास्किंग, बिटवाइज़ या,, उपसर्ग ब्लॉक करने के लिए उपसर्ग लंबाई, स्विच पते की स्थापना एक सबनेट के माध्यम से पुनरावृत्ति, रोकथाम की जाँच, पता खंडों की जगह, पते पीछे, सबनेट चौराहे की गणना, एक सबनेट घटाकर के रूप में विभिन्न नेटवर्क गणित संचालन, संभालती है दूसरे से, और दूसरों से।

String ipv6 = "2001:db8:57AB:0000:0000:0000:0000:0001"; 
    String ipv6subnet = "2001:db8::/32"; 
    String ipv4 = "1.2.3.4"; 
    try { 
     IPAddressString ipv6addrstr = new IPAddressString(ipv6); 
     IPAddressString ipv6addrsubnetstr = new IPAddressString(ipv6subnet); 
     IPAddressString ipv4addrstr = new IPAddressString(ipv4); 

     IPAddress ipv6addr = ipv6addrstr.toAddress(); 
     IPAddress ipv6addrsubnet = ipv6addrsubnetstr.toAddress(); 
     IPAddress ipv4mappedaddr = ipv4addrstr.toAddress().toIPv6(); 

     System.out.println(ipv6addrsubnet + " contains " + ipv6addr + ": " + ipv6addrsubnet.contains(ipv6addr)); // 
     System.out.println(ipv6addrsubnet + " contains " + ipv4mappedaddr + ": " + ipv6addrsubnet.contains(ipv4mappedaddr)); // 

    } catch(AddressStringException e) { 
     //e.getMessage has validation error 
    } 

उत्पादन:

2001:db8::/32 contains 2001:db8:57ab::1 is true 
2001:db8::/32 contains ::ffff:102:304 is false