java.net.Inet6Address#getAddress ( )源码实例Demo

下面列出了java.net.Inet6Address#getAddress ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: meshenger-android   文件: Utils.java
private static Inet6Address createEUI64Address(Inet6Address addr6, byte[] mac) {
    // addr6 is expected to be a EUI64 address
    try {
        byte[] bytes = addr6.getAddress();

        bytes[8] = (byte) (mac[0] ^ 2);
        bytes[9] = mac[1];
        bytes[10] = mac[2];

        // already set, but doesn't harm
        bytes[11] = (byte) 0xFF;
        bytes[12] = (byte) 0xFE;

        bytes[13] = mac[3];
        bytes[14] = mac[4];
        bytes[15] = mac[5];

        return Inet6Address.getByAddress(null, bytes, addr6.getScopeId());
    } catch (UnknownHostException e) {
        return null;
    }
}
 
源代码2 项目: codebuff   文件: InetAddresses.java
/**
 * Evaluates whether the argument is an ISATAP address.
 *
 * <p>From RFC 5214: "ISATAP interface identifiers are constructed in Modified EUI-64 format [...]
 * by concatenating the 24-bit IANA OUI (00-00-5E), the 8-bit hexadecimal value 0xFE, and a 32-bit
 * IPv4 address in network byte order [...]"
 *
 * <p>For more on ISATAP addresses see section 6.1 of
 * <a target="_parent" href="http://tools.ietf.org/html/rfc5214#section-6.1">RFC 5214</a>.
 *
 * @param ip {@link Inet6Address} to be examined for ISATAP address format
 * @return {@code true} if the argument is an ISATAP address
 */


public static boolean isIsatapAddress(Inet6Address ip) {

  // If it's a Teredo address with the right port (41217, or 0xa101)
  // which would be encoded as 0x5efe then it can't be an ISATAP address.
  if (isTeredoAddress(ip)) {
    return false;
  }
  byte[] bytes = ip.getAddress();
  if ((bytes[8] | (byte) 0x03) != (byte) 0x03) {

    // Verify that high byte of the 64 bit identifier is zero, modulo
    // the U/L and G bits, with which we are not concerned.
    return false;
  }
  return (bytes[9] == (byte) 0x00) && (bytes[10] == (byte) 0x5e)
  && (bytes[11] == (byte) 0xfe);
}
 
源代码3 项目: jdk8u-jdk   文件: Inet6AddressSerializationTest.java
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
源代码4 项目: jdk8u60   文件: Inet6AddressSerializationTest.java
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
源代码7 项目: jdk8u-jdk   文件: Inet6AddressSerializationTest.java
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
源代码8 项目: hottub   文件: Inet6AddressSerializationTest.java
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
源代码9 项目: codebuff   文件: InetAddresses.java
/**
 * Evaluates whether the argument is an ISATAP address.
 *
 * <p>From RFC 5214: "ISATAP interface identifiers are constructed in Modified EUI-64 format [...]
 * by concatenating the 24-bit IANA OUI (00-00-5E), the 8-bit hexadecimal value 0xFE, and a 32-bit
 * IPv4 address in network byte order [...]"
 *
 * <p>For more on ISATAP addresses see section 6.1 of
 * <a target="_parent" href="http://tools.ietf.org/html/rfc5214#section-6.1">RFC 5214</a>.
 *
 * @param ip {@link Inet6Address} to be examined for ISATAP address format
 * @return {@code true} if the argument is an ISATAP address
 */


public static boolean isIsatapAddress(Inet6Address ip) {

  // If it's a Teredo address with the right port (41217, or 0xa101)
  // which would be encoded as 0x5efe then it can't be an ISATAP address.
  if (isTeredoAddress(ip)) {
    return false;
  }
  byte[] bytes = ip.getAddress();
  if ((bytes[8] | (byte) 0x03) != (byte) 0x03) {

    // Verify that high byte of the 64 bit identifier is zero, modulo
    // the U/L and G bits, with which we are not concerned.
    return false;
  }
  return (bytes[9] == (byte) 0x00) && (bytes[10] == (byte) 0x5e)
  && (bytes[11] == (byte) 0xfe);
}
 
源代码10 项目: codebuff   文件: InetAddresses.java
/**
 * Returns the Teredo information embedded in a Teredo address.
 *
 * @param ip {@link Inet6Address} to be examined for embedded Teredo information
 * @return extracted {@code TeredoInfo}
 * @throws IllegalArgumentException if the argument is not a valid IPv6 Teredo address
 */
public static TeredoInfo getTeredoInfo(Inet6Address ip) {
  Preconditions.checkArgument(
      isTeredoAddress(ip), "Address '%s' is not a Teredo address.", toAddrString(ip));

  byte[] bytes = ip.getAddress();
  Inet4Address server = getInet4Address(Arrays.copyOfRange(bytes, 4, 8));

  int flags = ByteStreams.newDataInput(bytes, 8).readShort() & 0xffff;

  // Teredo obfuscates the mapped client port, per section 4 of the RFC.
  int port = ~ByteStreams.newDataInput(bytes, 10).readShort() & 0xffff;

  byte[] clientBytes = Arrays.copyOfRange(bytes, 12, 16);
  for (int i = 0; i < clientBytes.length; i++) {
    // Teredo obfuscates the mapped client IP, per section 4 of the RFC.
    clientBytes[i] = (byte) ~clientBytes[i];
  }
  Inet4Address client = getInet4Address(clientBytes);

  return new TeredoInfo(server, client, port, flags);
}
 
源代码11 项目: jdk8u_jdk   文件: Inet6AddressSerializationTest.java
static void displayExpectedInet6Address(Inet6Address expectedInet6Address) {

        String expectedHostName = expectedInet6Address.getHostName();
        byte[] expectedAddress = expectedInet6Address.getAddress();
        String expectedHostAddress = expectedInet6Address.getHostAddress();
        int expectedScopeId = expectedInet6Address.getScopeId();
        NetworkInterface expectedNetIf = expectedInet6Address
                .getScopedInterface();

        System.err.println("Excpected HostName: " + expectedHostName);
        System.err.println("Expected Address: "
                + Arrays.toString(expectedAddress));
        System.err.println("Expected HostAddress: " + expectedHostAddress);
        System.err.println("Expected Scope Id " + expectedScopeId);
        System.err.println("Expected NetworkInterface " + expectedNetIf);
        System.err.println("Expected Inet6Address " + expectedInet6Address);
    }
 
源代码12 项目: meshenger-android   文件: Utils.java
public static byte[] getEUI64MAC(Inet6Address addr6) {
    byte[] bytes = addr6.getAddress();
    if (bytes[11] != ((byte) 0xFF) || bytes[12] != ((byte) 0xFE)) {
        return null;
    }

    byte[] mac = new byte[6];
    mac[0] = (byte) (bytes[8] ^ 2);
    mac[1] = bytes[9];
    mac[2] = bytes[10];
    mac[3] = bytes[13];
    mac[4] = bytes[14];
    mac[5] = bytes[15];
    return mac;
}
 
源代码13 项目: netty-4.1.22   文件: DnsQueryContextManager.java
private static Inet4Address toIPv4Address(Inet6Address a6) {
    byte[] b6 = a6.getAddress();
    byte[] b4 = { b6[12], b6[13], b6[14], b6[15] };
    try {
        return (Inet4Address) InetAddress.getByAddress(b4);
    } catch (UnknownHostException e) {
        throw new Error(e);
    }
}
 
源代码14 项目: galimatias   文件: IPv6Address.java
/**
 * Convert from @{java.net.Inet6Address}.
 *
 * @param inet6Address The IPv6 address as a @{java.net.Inet6Address}.
 * @return The IPv6 address as a @{IPv6Address}.
 */
public static IPv6Address fromInet6Address(final Inet6Address inet6Address) {
    final byte[] bytes = inet6Address.getAddress();
    final short[] pieces = new short[8];
    for (int i = 0; i < pieces.length; i++) {
        pieces[i] = (short) (((bytes[i*2] & 0xFF) << 8) | (bytes[i*2+1] & 0x00FF));
    }
    return new IPv6Address(pieces);
}
 
源代码15 项目: EasyVPN-Free   文件: NetworkSpace.java
public ipAddress(Inet6Address address, int mask, boolean include) {
    networkMask = mask;
    included = include;

    int s = 128;

    netAddress = BigInteger.ZERO;
    for (byte b : address.getAddress()) {
        s -= 8;
        netAddress = netAddress.add(BigInteger.valueOf((b & 0xFF)).shiftLeft(s));
    }
}
 
/**
 * Test the properties of an instance of IPV6 InetAddress. Much of the code in this method
 * is the same as the code in the method testNameAndAddress4() but it will test different
 * code paths through our byte-code-rewriting since this method uses an instance of
 * Inet6Address.
 * @param hostName The expected host name
 * @param addressString The expected address string
 * @param addressBytes The expected address bytes
 * @param scopeID the expected scopeID
 * @param inet6Addr The instance of Inet6Address being tested
 * @param response HttpServletResponse used to return failure message
 * @throws IOException If method being tested throws this.
 * @throws AssertionFailedException If an assertion fails
 */
private static void testNameAndAddress6(
    String hostName,
    String addressString,
    byte[] addressBytes,
    int scopeID,
    Inet6Address inet6Addr,
    HttpServletResponse response)
    throws IOException, AssertionFailedException {

  assertNotNull("inet6Addr", inet6Addr, response);

  //getAddress
  byte[] bytes = inet6Addr.getAddress();
  assertNotNull("inet6Addr bytes", bytes, response);
  assertEquals("inet6Addr bytes.length", 16, bytes.length, response);
  for (int i = 0; i < 16; i++) {
    assertEquals("inet6Addr address byte " + i, addressBytes[i], bytes[i], response);
  }

  //getCanonicalHostName should return addressString because user code
  //doesn't have permission to get an actual host name
  String canonicalName = inet6Addr.getCanonicalHostName();
  assertEquals("getCanonicalHostName", addressString, canonicalName.toUpperCase(), response);

  //getHostAddress
  String address = inet6Addr.getHostAddress();
  assertEquals("getHostAddress", addressString, address.toUpperCase(), response);

  //getHostName.
  String name2 = inet6Addr.getHostName().toUpperCase();
  String expectedName = (hostName == null ? addressString : hostName.toUpperCase());
  assertEquals("getHostName", expectedName, name2, response);

  //Misc Properties
  assertFalse("isAnyLocalAddress", inet6Addr.isAnyLocalAddress(), response);
  assertFalse("isLinkLocalAddress", inet6Addr.isLinkLocalAddress(), response);
  assertFalse("isLoopbackAddress", inet6Addr.isLoopbackAddress(), response);
  assertFalse("isMCGlobal", inet6Addr.isMCGlobal(), response);
  assertFalse("isMCLinkLoca", inet6Addr.isMCLinkLocal(), response);
  assertFalse("isMCNodeLocal", inet6Addr.isMCNodeLocal(), response);
  assertFalse("isMCOrgLocal", inet6Addr.isMCOrgLocal(), response);
  assertFalse("isMCSiteLoca", inet6Addr.isMCSiteLocal(), response);
  assertFalse("isMulticastAddress", inet6Addr.isMulticastAddress(), response);
  assertFalse("isSiteLocalAddress", inet6Addr.isSiteLocalAddress(), response);

  //toString
  String s = inet6Addr.toString();
  String prefix = (hostName == null ? addressString : hostName);
  assertEquals(
      "toString", (prefix + "/" + addressString).toUpperCase(), s.toUpperCase(), response);

  //isReachable
  assertFalse("isReachable", inet6Addr.isReachable(1000), response);

  //getScopedInterface
  assertNull("getScopedInterface()", inet6Addr.getScopedInterface(), response);

  //getScopedID
  assertEquals("getScopedID()", scopeID, inet6Addr.getScopeId(), response);

  //getHashCode
  assertFalse("hashCode is 0", 0 == inet6Addr.hashCode(), response);

  //isIPv4Compatible
  assertFalse("is Ipv4Compatible()", inet6Addr.isIPv4CompatibleAddress(), response);
}
 
源代码17 项目: codebuff   文件: InetAddresses.java
/**
 * Evaluates whether the argument is a Teredo address.
 *
 * <p>Teredo addresses begin with the {@code "2001::/32"} prefix.
 *
 * @param ip {@link Inet6Address} to be examined for Teredo address format
 * @return {@code true} if the argument is a Teredo address
 */


public static boolean isTeredoAddress(Inet6Address ip) {
  byte[] bytes = ip.getAddress();
  return (bytes[0] == (byte) 0x20) && (bytes[1] == (byte) 0x01) && (bytes[2] == 0)
  && (bytes[3] == 0);
}
 
源代码18 项目: codebuff   文件: InetAddresses.java
/**
   * Evaluates whether the argument is a Teredo address.
   *
   * <p>Teredo addresses begin with the {@code "2001::/32"} prefix.
   *
   * @param ip {@link Inet6Address} to be examined for Teredo address format
   * @return {@code true} if the argument is a Teredo address
   */


  public static boolean isTeredoAddress(Inet6Address ip) {
    byte[] bytes = ip.getAddress();
    return (bytes[0] == (byte) 0x20) && (bytes[1] == (byte) 0x01) && (bytes[2] == 0)
&& (bytes[3] == 0);
  }
 
源代码19 项目: IPAddress   文件: IPv6Address.java
/**
 * Constructs an IPv6 address.
 *
 * @param inet6Address the java.net address object
 */
public IPv6Address(Inet6Address inet6Address) {
	this(inet6Address.getAddress(), getZone(inet6Address));
}
 
源代码20 项目: codebuff   文件: InetAddresses.java
/**
 * Evaluates whether the argument is a 6to4 address.
 *
 * <p>6to4 addresses begin with the {@code "2002::/16"} prefix. The next 32 bits are the IPv4
 * address of the host to which IPv6-in-IPv4 tunneled packets should be routed.
 *
 * <p>For more on 6to4 addresses see section 2 of
 * <a target="_parent" href="http://tools.ietf.org/html/rfc3056#section-2">RFC 3056</a>.
 *
 * @param ip {@link Inet6Address} to be examined for 6to4 address format
 * @return {@code true} if the argument is a 6to4 address
 */


public static boolean is6to4Address(Inet6Address ip) {
  byte[] bytes = ip.getAddress();
  return (bytes[0] == (byte) 0x20) && (bytes[1] == (byte) 0x02);
}