네트워크 수학을 목표로하고 이미 테스트 된 Java 라이브러리를 찾고 있습니다. 특히 공상적인 것, ips와 서브넷을 유지하는 것, 서브넷 마스크를 인쇄하거나 IP가 주어진 서브넷에 있는지 여부를 계산하는 것과 같은 일을하는 것.네트워크 수학을위한 훌륭한 Java 라이브러리
나 자신을 굴릴 수 있습니까? 아니면 이것을 위해 이미 강력한 라이브러리가 있습니까?
네트워크 수학을 목표로하고 이미 테스트 된 Java 라이브러리를 찾고 있습니다. 특히 공상적인 것, ips와 서브넷을 유지하는 것, 서브넷 마스크를 인쇄하거나 IP가 주어진 서브넷에 있는지 여부를 계산하는 것과 같은 일을하는 것.네트워크 수학을위한 훌륭한 Java 라이브러리
나 자신을 굴릴 수 있습니까? 아니면 이것을 위해 이미 강력한 라이브러리가 있습니까?
우리는 Java IPv4 산술 라이브러리를 직접 개발했습니다. 여기를 참조하십시오 : http://tufar.com/ipcalculator/ BSD 라이센스가 적용됩니다.
org.apache.lenya.ac.IPRange에는 이러한 기능이있는 것으로 보입니다.
Apache Lenya 프로젝트는 오픈 소스 콘텐츠 관리 시스템입니다. Apache 라이센스를 사용하므로 필요한 코드 만 재사용 할 수 있습니다. (그러나 항상 그렇듯이 license을 읽고 인터넷에서 어떤 사람의 법적 조언을 신뢰하지 마십시오! :-)
open-source IPAddress Java library은 ipv4/ipv6과의 변환 및 서브넷 검사와 같은 ip 주소 조작을 수행 할 수 있습니다. 면책 조항 : 저는 프로젝트 매니저입니다.
마스킹, 비트 별 또는 접두사 길이 설정, 접두어 블록 전환 주소, 서브넷 반복, 포함 확인, 주소 세그먼트 교체, 주소 반전, 서브넷 교차 계산, 하나의 서브넷 빼기 등의 다양한 네트워크 연산을 처리합니다. 다른 사람 및 다른 사람에게서.
가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
org.apache.lenya.ac.IPRange 확실하게하도록 수정 될 수는 IPv6 주소가 소정 서브넷에있는 경우 여기
은 테스트에 대한 일부 예시적인 코드 내 요구를 충족시켜 주셔서 감사합니다. 즉, Perl의 IP :: NetAddr과 같은 Java와 같은 좀 더 일반적인 것을 찾으려고했습니다. – perilandmishap