import com.google.common.primitives.Bytes;
import com.google.common.primitives.UnsignedBytes;
import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
return new Ipv4Address(InetAddresses.toAddrString(getAddress(ByteArray.readBytes(buffer, IP4_LENGTH))));
}
+ /**
+ * From string ipAddress creates an InetAddress and puts it into ByteBuf.
+ * @param ipAddress Ipv4 address
+ * @return ByteBuf with filled in bytes from ipAddress
+ */
+ public static ByteBuf byteBufForAddress(final Ipv4Address ipAddress) {
+ return Unpooled.wrappedBuffer(bytesForAddress(ipAddress));
+ }
+
/**
* Converts Ipv4Address to byte array.
*
import com.google.common.primitives.Bytes;
import com.google.common.primitives.UnsignedBytes;
import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
return new Ipv6Address(InetAddresses.toAddrString(getAddress((ByteArray.readBytes(buffer, IPV6_LENGTH)))));
}
+ /**
+ * From string ipAddress creates an InetAddress and puts it into ByteBuf.
+ * @param ipAddress Ipv6 address
+ * @return ByteBuf with filled in bytes from ipAddress
+ */
+ public static ByteBuf byteBufForAddress(final Ipv6Address ipAddress) {
+ return Unpooled.wrappedBuffer(bytesForAddress(ipAddress));
+ }
+
/**
* Converts Ipv6Address to byte array.
*
assertEquals(new Ipv6Address("2001::1"), Ipv6Util.addressForByteBuf(bb));
}
+ @Test
+ public void testByteBufForAddress() {
+ final ByteBuf bb4 = Unpooled.wrappedBuffer(new byte[] { 123, 122, 4, 5} );
+ final ByteBuf bb6 = Unpooled.wrappedBuffer(new byte[] { 0x20, (byte) 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } );
+ assertEquals(bb4, Ipv4Util.byteBufForAddress(new Ipv4Address("123.122.4.5")));
+ assertEquals(bb6, Ipv6Util.byteBufForAddress(new Ipv6Address("2001::1")));
+ }
+
@Test
public void testBytesForAddress() {
assertArrayEquals(new byte[] { 12, 58, (byte) 201, 99 }, Ipv4Util.bytesForAddress(new Ipv4Address("12.58.201.99")));