Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个很好的网络数学Java库_Java_Math_Networking - Fatal编程技术网

一个很好的网络数学Java库

一个很好的网络数学Java库,java,math,networking,Java,Math,Networking,我正在寻找一个面向网络数学并且已经过测试的Java库。没有什么特别的新奇,只是用来保存IP和子网,并可以打印子网掩码或计算IP是否在给定子网内 我应该自己滚动,还是已经有了一个强大的库来实现这一点?似乎有这些功能 ApacheLenya项目是一个开源内容管理系统。它使用Apache许可证,因此您可以重用所需的代码。(但和往常一样,请自己阅读;不要相信互联网上某个人的法律建议!-)我们自己开发了一个Java IPv4算术库。 请看这里: 它是在BSD许可下的 可以执行ip地址操作,例如与ipv4/

我正在寻找一个面向网络数学并且已经过测试的Java库。没有什么特别的新奇,只是用来保存IP和子网,并可以打印子网掩码或计算IP是否在给定子网内

我应该自己滚动,还是已经有了一个强大的库来实现这一点?

似乎有这些功能


ApacheLenya项目是一个开源内容管理系统。它使用Apache许可证,因此您可以重用所需的代码。(但和往常一样,请自己阅读;不要相信互联网上某个人的法律建议!-)

我们自己开发了一个Java IPv4算术库。 请看这里: 它是在BSD许可下的

可以执行ip地址操作,例如与ipv4/ipv6之间的转换和子网检查。免责声明:我是项目经理

它处理各种网络数学操作,例如掩蔽、按位或、设置前缀长度、将地址切换到前缀块、迭代子网、检查包含、替换地址段、反转地址、计算子网交点、从另一个子网减去一个子网等

以下是一些用于测试ipv6地址是否位于给定子网中的示例代码:

    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当然可以修改以满足我的需要,感谢您的回复。也就是说,我希望找到更通用的东西,比如与Perl的IP::NetAddress相当的Java。