Java按位或合并ipv6前缀和后缀

在某些情况下只能获取到ipv6的前缀和后缀,在合并时需要按位或,可以使用本文的代码。

示例版本

<dependency>
	<groupId>com.github.seancfoley</groupId>
	<artifactId>ipaddress</artifactId>
	<version>5.5.1</version>
</dependency>

实现:

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class Ipv6MergeUtil {

  public static String merge(String framedIpv6Prefix, String framedInterfaceId) {
    if (framedIpv6Prefix == null || framedInterfaceId == null) {
      return null;
    }
    try {
      IPAddressString prefix = new IPAddressString(framedIpv6Prefix);
      IPAddressString id = new IPAddressString("::" + framedInterfaceId);
      IPAddress prefixAddress = prefix.getAddress();
      IPAddress idAddress = id.getAddress();
      if (prefixAddress != null && idAddress != null) {
        return idAddress.bitwiseOr(prefixAddress).toString();
      }
    } catch (Exception e) {
      //do nothing
    }
    return framedInterfaceId;
  }

}

 

posted @ 2024-12-07 00:02  Jackie_JK  阅读(22)  评论(0)    收藏  举报