/** * 从IPv4String转换为InetAddress. * * IpString如果确定ipv4, 使用本方法减少字符分析消耗 . * * 先字符串传换为byte[]再调getByAddress(byte[]),避免了调用getByName(ip)可能引起的DNS访问. */ public static Inet4Address fromIpv4String(String address) { byte[] bytes = ip4StringToBytes(address); if (bytes == null) { return null; } else { try { return (Inet4Address) Inet4Address.getByAddress(bytes); } catch (UnknownHostException e) { throw new AssertionError(e); } } }
/** * Parse an IPv4 address into an {@code Inet4Address} object. * * @param address the address to parse * @param hostName the host name to use in the resultant object, or {@code null} to use the string representation of * the address * @return the parsed address, or {@code null} if the address is not valid */ public static Inet4Address parseInet4Address(String address, String hostName) { final byte[] bytes = parseInet4AddressToBytes(address); if (bytes == null) { return null; } try { return (Inet4Address) Inet4Address.getByAddress(hostName == null ? toOptimalString(bytes) : hostName, bytes); } catch (UnknownHostException e) { // not possible throw new IllegalStateException(e); } }
try { byte[] octets = ByteArrays.parseInet4Address(addr); this.address = (Inet4Address) Inet4Address.getByAddress(octets); } catch (IllegalArgumentException e) { StringBuilder sb = new StringBuilder(200);
private void decode() { //Decoding BGPLS_ID_TLV byte[] ip=new byte[4]; System.arraycopy(this.subtlv_bytes,4, ip, 0, 4); try { BGPLS_ID=(Inet4Address)Inet4Address.getByAddress(ip); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
.tos(IpV4Rfc791Tos.newInstance((byte) 0)) .protocol(IpNumber.UDP) .srcAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) assertEquals(Inet4Address.getByAddress(new byte[]{8, 8, 8, 8}), mockEventLoop.lastOutgoing.getAddress()); dnsPacketProxy.upstreamDnsServers.add(Inet4Address.getByAddress(new byte[]{1, 1, 1, 2})); dnsPacketProxy.handleDnsRequest(ipOutPacket.getRawData()); dnsPacketProxy.upstreamDnsServers.add(Inet4Address.getByAddress(new byte[]{1, 1, 1, i})); dnsPacketProxy.handleDnsRequest(ipOutPacket.getRawData()); assertEquals(Inet4Address.getByAddress(new byte[]{1, 1, 1, 8}), mockEventLoop.lastOutgoing.getAddress()); assertNull(mockEventLoop.lastResponse);
public void writeBson(final BsonWriter bsonWriter) { try { bsonWriter.writeString(Inet4Address.getByAddress(this.ip_v4.value).getHostAddress()); } catch (UnknownHostException e) { Throwables.propagate(e); } } }
public static InetAddress ipIntToInet4Address(int ip) { byte[] ipAddress = new byte[4]; writeInt(ipAddress, 0, ip); try { return Inet4Address.getByAddress(ipAddress); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } }
public static InetAddress ipIntToInet4Address(int ip) { byte[] ipAddress = new byte[4]; writeInt(ipAddress, 0, ip); try { return Inet4Address.getByAddress(ipAddress); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } }
/** * Convert to @{java.net.InetAddress}. * * @return The IPv4 address as a @{java.net.InetAddress}. */ public Inet4Address toInetAddress() throws UnknownHostException { return (Inet4Address) Inet4Address.getByAddress(getBytes()); }
0x01, 3600, Inet4Address.getByAddress(new byte[]{0, 0, 0, 0}) )); .tos(IpV4Rfc791Tos.newInstance((byte) 0)) .protocol(IpNumber.UDP) .srcAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) assertEquals(Inet4Address.getByAddress(new byte[]{8, 8, 8, 8}), mockEventLoop.lastOutgoing.getAddress());
@Test public void testHandleDnsRequestNotUdpPacket() throws Exception { TcpPacket.Builder payLoadBuilder = new TcpPacket.Builder() .srcPort(TcpPort.HTTP) .dstPort(TcpPort.HTTP) .srcAddr(InetAddress.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr(InetAddress.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .payloadBuilder( new UnknownPacket.Builder() .rawData(new byte[0]) ); IpPacket ipOutPacket = new IpV4Packet.Builder() .version(IpVersion.IPV4) .tos(IpV4Rfc791Tos.newInstance((byte) 0)) .protocol(IpNumber.UDP) .srcAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .payloadBuilder(payLoadBuilder) .build(); dnsPacketProxy.handleDnsRequest(ipOutPacket.getRawData()); assertNull(mockEventLoop.lastOutgoing); assertNull(mockEventLoop.lastResponse); }
@Test public void testHandleDnsRequestNotDnsPacket() throws Exception { UdpPacket.Builder payLoadBuilder = new UdpPacket.Builder() .srcPort(UdpPort.HTTP) .dstPort(UdpPort.HTTP) .srcAddr(InetAddress.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr(InetAddress.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .payloadBuilder( new UnknownPacket.Builder() .rawData(new byte[]{1, 2, 3, 4, 5}) ); IpPacket ipOutPacket = new IpV4Packet.Builder() .version(IpVersion.IPV4) .tos(IpV4Rfc791Tos.newInstance((byte) 0)) .protocol(IpNumber.UDP) .srcAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .payloadBuilder(payLoadBuilder) .build(); dnsPacketProxy.handleDnsRequest(ipOutPacket.getRawData()); assertNull(mockEventLoop.lastOutgoing); assertNull(mockEventLoop.lastResponse); }
@Test public void testNoQueryDnsQuery() throws Exception { Message message = new Message(); UdpPacket.Builder payLoadBuilder = new UdpPacket.Builder() .srcPort(UdpPort.DOMAIN) .dstPort(UdpPort.DOMAIN) .srcAddr(InetAddress.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr(InetAddress.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .payloadBuilder( new UnknownPacket.Builder() .rawData(message.toWire()) ); IpPacket ipOutPacket = new IpV4Packet.Builder() .version(IpVersion.IPV4) .tos(IpV4Rfc791Tos.newInstance((byte) 0)) .protocol(IpNumber.UDP) .srcAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .payloadBuilder(payLoadBuilder) .build(); dnsPacketProxy.handleDnsRequest(ipOutPacket.getRawData()); assertNull(mockEventLoop.lastResponse); assertNull(mockEventLoop.lastOutgoing); dnsPacketProxy.handleDnsRequest(ipOutPacket.getRawData()); }
@Nonnull public Inet4Address getAddress() throws DhcpException { try { return (Inet4Address) Inet4Address.getByAddress(getData()); } catch (ClassCastException e) { throw new DhcpException("Illegal InetAddress data: " + Arrays.toString(getData()) + " for " + this, e); } catch (UnknownHostException e) { throw new DhcpException("Illegal InetAddress data: " + Arrays.toString(getData()) + " for " + this, e); } }
@Override public Value<?> parse(final Session.Resolver resolver, final ByteBuffer buffer) throws InvalidPacketException { try { return new IPv6AddressValue(name, semantics, (Inet6Address) Inet4Address.getByAddress(bytes(buffer, 16))); } catch (UnknownHostException e) { throw new InvalidPacketException(buffer, "Error parsing IPv6 value", e); } }
@Override public Value<?> parse(final Session.Resolver resolver, final ByteBuffer buffer) throws InvalidPacketException { try { return new IPv4AddressValue(name, semantics, (Inet4Address) Inet4Address.getByAddress(bytes(buffer, 4))); } catch (final UnknownHostException e) { throw new InvalidPacketException(buffer, "Error parsing IPv4 value", e); } }
@Override public Value<?> parse(final Session.Resolver resolver, final ByteBuffer buffer) throws InvalidPacketException { try { return new IPv4AddressValue(name, semantics, (Inet4Address) Inet4Address.getByAddress(bytes(buffer, 4))); } catch (final UnknownHostException e) { throw new InvalidPacketException(buffer, "Error parsing IPv4 value", e); } }
@Override public Value<?> parse(final Session.Resolver resolver, final ByteBuffer buffer) throws InvalidPacketException { try { return new IPv6AddressValue(name, semantics, (Inet6Address) Inet4Address.getByAddress(bytes(buffer, 16))); } catch (UnknownHostException e) { throw new InvalidPacketException(buffer, "Error parsing IPv6 value", e); } }
0x01, 3600, Inet4Address.getByAddress(new byte[]{0, 0, 0, 0}) )); .tos(IpV4Rfc791Tos.newInstance((byte) 0)) .protocol(IpNumber.UDP) .srcAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 4, 4})) .dstAddr((Inet4Address) Inet4Address.getByAddress(new byte[]{8, 8, 8, 8})) .correctChecksumAtBuild(true) .correctLengthAtBuild(true)
0x01, 3600, Inet4Address.getByAddress(new byte[]{0, 0, 0, 0}) ));