java.net.InetAddress#getByAddress ( )源码实例Demo

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

源代码1 项目: Dodder   文件: DHTServerHandler.java
/**
 * 解析响应内容中的 DHT 节点信息
 *
 * @param r
 */
private void resolveNodes(Map r) {

	byte[] nodes = (byte[]) r.get("nodes");

	if (nodes == null)
		return;

	for (int i = 0; i < nodes.length; i += 26) {
		try {
			//limit the node queue size
			if (NODES_QUEUE.size() > 5000)
				continue;
			InetAddress ip = InetAddress.getByAddress(new byte[]{nodes[i + 20], nodes[i + 21], nodes[i + 22], nodes[i + 23]});
			InetSocketAddress address = new InetSocketAddress(ip, (0x0000FF00 & (nodes[i + 24] << 8)) | (0x000000FF & nodes[i + 25]));
			byte[] nid = new byte[20];
			System.arraycopy(nodes, i, nid, 0, 20);
			NODES_QUEUE.offer(new Node(nid, address));
			//log.info("get node address=[{}] ", address);
		} catch (Exception e) {
			log.error("", e);
		}
	}
}
 
源代码2 项目: grpc-java   文件: GrpclbNameResolverTest.java
@Test
public void resolve_nullResourceResolver() throws Exception {
  InetAddress backendAddr = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
  AddressResolver mockAddressResolver = mock(AddressResolver.class);
  when(mockAddressResolver.resolveAddress(anyString()))
      .thenReturn(Collections.singletonList(backendAddr));
  ResourceResolver resourceResolver = null;

  resolver.setAddressResolver(mockAddressResolver);
  resolver.setResourceResolver(resourceResolver);

  resolver.start(mockListener);
  assertThat(fakeClock.runDueTasks()).isEqualTo(1);
  verify(mockListener).onResult(resultCaptor.capture());
  ResolutionResult result = resultCaptor.getValue();
  assertThat(result.getAddresses())
      .containsExactly(
          new EquivalentAddressGroup(new InetSocketAddress(backendAddr, DEFAULT_PORT)));
  assertThat(result.getAttributes()).isEqualTo(Attributes.EMPTY);
  assertThat(result.getServiceConfig()).isNull();
}
 
源代码3 项目: TencentKona-8   文件: SimpleNameService.java
public InetAddress[] lookupAllHostAddr(String host) throws UnknownHostException {

        lookupCalls ++;

        String value = (String)hosts.get(host);
        if (value == null) {
            throw new UnknownHostException(host);
        }
        StringTokenizer st = new StringTokenizer(value, ".");
        byte addr[] = new byte[4];
        for (int i=0; i<4; i++) {
            addr[i] = (byte)Integer.parseInt(st.nextToken());
        }
        InetAddress[] res = new InetAddress[1];
        res[0] = InetAddress.getByAddress(host, addr);
        return res;
    }
 
源代码4 项目: vespa   文件: IPAddresses.java
static InetAddress prefixTranslate(byte[] address, byte[] prefix, int nofBytes) {
    System.arraycopy(prefix, 0, address, 0, nofBytes);
    try {
        return InetAddress.getByAddress(address);
    } catch (UnknownHostException e) {
        throw new UncheckedIOException(e);
    }
}
 
源代码5 项目: cidr-ip-trie   文件: Ip4.java
/**
 * This method uses InetAddress.getByAddress, and so does not block.
 *
 * @return java.net.InetAddress representing this IPv4 address
 * @throws UnknownHostException if not host found
 */
public final InetAddress getInetAddress() throws UnknownHostException {
  final int[] ints = toArray(address, false);
  return InetAddress.getByAddress(new byte[] {
      (byte) ints[0],
      (byte) ints[1],
      (byte) ints[2],
      (byte) ints[3]});
}
 
源代码6 项目: android_9.0.0_r45   文件: NetworkUtils.java
/**
 * Get InetAddress masked with prefixLength.  Will never return null.
 * @param address the IP address to mask with
 * @param prefixLength the prefixLength used to mask the IP
 */
public static InetAddress getNetworkPart(InetAddress address, int prefixLength) {
    byte[] array = address.getAddress();
    maskRawAddress(array, prefixLength);

    InetAddress netPart = null;
    try {
        netPart = InetAddress.getByAddress(array);
    } catch (UnknownHostException e) {
        throw new RuntimeException("getNetworkPart error - " + e.toString());
    }
    return netPart;
}
 
源代码7 项目: visualvm   文件: HostProvider.java
public Host createUnknownHost() {
    try {
        return new Host("unknown", InetAddress.getByAddress(new byte[] { 0, 0, 0, 0 })) {}; // NOI18N
    } catch (UnknownHostException e) {
        LOGGER.severe("Failure: cannot resolve <unknown> host");    // NOI18N
        return null;
    }
}
 
源代码8 项目: bidder   文件: CIDRUtils.java
private void calculate() throws UnknownHostException {

        ByteBuffer maskBuffer;
        int targetSize;
        if (inetAddress.getAddress().length == 4) {
            maskBuffer =
                    ByteBuffer
                            .allocate(4)
                            .putInt(-1);
            targetSize = 4;
        } else {
            maskBuffer = ByteBuffer.allocate(16)
                    .putLong(-1L)
                    .putLong(-1L);
            targetSize = 16;
        }

        BigInteger mask = (new BigInteger(1, maskBuffer.array())).not().shiftRight(prefixLength);

        ByteBuffer buffer = ByteBuffer.wrap(inetAddress.getAddress());
        BigInteger ipVal = new BigInteger(1, buffer.array());

        BigInteger startIp = ipVal.and(mask);
        BigInteger endIp = startIp.add(mask.not());

        byte[] startIpArr = toBytes(startIp.toByteArray(), targetSize);
        byte[] endIpArr = toBytes(endIp.toByteArray(), targetSize);

        this.startAddress = InetAddress.getByAddress(startIpArr);
        this.endAddress = InetAddress.getByAddress(endIpArr);

    }
 
源代码9 项目: msgpack-rpc-java   文件: IPAddress.java
public InetSocketAddress getInetSocketAddress() {
    try {
        return new InetSocketAddress(InetAddress.getByAddress(address),
                port);
    } catch (UnknownHostException e) {
        throw new RuntimeException(e.getMessage());
    }
}
 
源代码10 项目: openjdk-8-source   文件: HostAddress.java
/**
 * Gets the InetAddress of this HostAddress.
 * @return the IP address for this specified host.
 * @exception if no IP address for the host could be found.
 *
 */
public InetAddress getInetAddress() throws UnknownHostException {
    // the type of internet addresses is 2.
    if (addrType == Krb5.ADDRTYPE_INET ||
        addrType == Krb5.ADDRTYPE_INET6) {
        return (InetAddress.getByAddress(address));
    } else {
        // if it is other type (ISO address, XNS address, etc)
        return null;
    }
}
 
/**
 * Get instances of InetAddress by calling InetAddress.getByAddress(byte[]),
 * Inet4Address.getByAddress(byte[]),  and Inet6Address.getByAddress(byte[]),
 * passing in a 4-byte address,
 * and then test their properties.
 * @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 testGetByAddress4(HttpServletResponse response)
    throws IOException, AssertionFailedException {
  byte[] addressBytes = new byte[] {74, 125, (byte) 224, 19};
  String addressString = "74.125.224.19";
  String name = null;
  InetAddress googleDotCom = InetAddress.getByAddress(addressBytes);
  testNameAndAddress4(name, addressString, addressBytes, googleDotCom, response);
  googleDotCom = Inet4Address.getByAddress(addressBytes);
  testNameAndAddress4(name, addressString, addressBytes, googleDotCom, response);
  googleDotCom = Inet6Address.getByAddress(addressBytes);
  testNameAndAddress4(name, addressString, addressBytes, googleDotCom, response);
}
 
源代码12 项目: Qora   文件: PeersMessage.java
public static PeersMessage parse(byte[] data) throws Exception
{
	//READ LENGTH
	byte[] lengthBytes =  Arrays.copyOfRange(data, 0, DATA_LENGTH);
	int length = Ints.fromByteArray(lengthBytes);
	
	//CHECK IF DATA MATCHES LENGTH
	if(data.length != DATA_LENGTH + (length * ADDRESS_LENGTH))
	{
		throw new Exception("Data does not match length");
	}
	
	//CREATE PEER LIST
	List<Peer> peers = new ArrayList<Peer>();
	
	for(int i=0; i<length; i++)
	{
		//CALCULATE POSITION
		int position = lengthBytes.length + (i * ADDRESS_LENGTH);
		
		//READ ADDRESS
		byte[] addressBytes = Arrays.copyOfRange(data, position, position + ADDRESS_LENGTH);
		InetAddress address = InetAddress.getByAddress(addressBytes);
		
		//CREATE PEER
		Peer peer = new Peer(address);
		
		//ADD TO LIST
		peers.add(peer);
	}
	
	return new PeersMessage(peers);
}
 
源代码13 项目: grpc-java   文件: GrpclbNameResolverTest.java
@Test
public void resolve_presentResourceResolver() throws Exception {
  InetAddress backendAddr = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
  InetAddress lbAddr = InetAddress.getByAddress(new byte[] {10, 1, 0, 0});
  int lbPort = 8080;
  String lbName = "foo.example.com.";  // original name in SRV record
  SrvRecord srvRecord = new SrvRecord(lbName, 8080);
  AddressResolver mockAddressResolver = mock(AddressResolver.class);
  when(mockAddressResolver.resolveAddress(hostName))
      .thenReturn(Collections.singletonList(backendAddr));
  when(mockAddressResolver.resolveAddress(lbName))
      .thenReturn(Collections.singletonList(lbAddr));
  ResourceResolver mockResourceResolver = mock(ResourceResolver.class);
  when(mockResourceResolver.resolveTxt(anyString()))
      .thenReturn(
          Collections.singletonList(
              "grpc_config=[{\"clientLanguage\": [\"java\"], \"serviceConfig\": {}}]"));
  when(mockResourceResolver.resolveSrv(anyString()))
      .thenReturn(Collections.singletonList(srvRecord));
  when(serviceConfigParser.parseServiceConfig(ArgumentMatchers.<String, Object>anyMap()))
      .thenAnswer(new Answer<ConfigOrError>() {
        @Override
        public ConfigOrError answer(InvocationOnMock invocation) {
          Object[] args = invocation.getArguments();
          return ConfigOrError.fromConfig(args[0]);
        }
      });

  resolver.setAddressResolver(mockAddressResolver);
  resolver.setResourceResolver(mockResourceResolver);

  resolver.start(mockListener);
  assertThat(fakeClock.runDueTasks()).isEqualTo(1);
  verify(mockListener).onResult(resultCaptor.capture());
  ResolutionResult result = resultCaptor.getValue();
  InetSocketAddress resolvedBackendAddr =
      (InetSocketAddress) Iterables.getOnlyElement(
          Iterables.getOnlyElement(result.getAddresses()).getAddresses());
  assertThat(resolvedBackendAddr.getAddress()).isEqualTo(backendAddr);
  EquivalentAddressGroup resolvedBalancerAddr =
      Iterables.getOnlyElement(result.getAttributes().get(GrpclbConstants.ATTR_LB_ADDRS));
  assertThat(resolvedBalancerAddr.getAttributes().get(GrpclbConstants.ATTR_LB_ADDR_AUTHORITY))
      .isEqualTo("foo.example.com");
  InetSocketAddress resolvedBalancerSockAddr =
      (InetSocketAddress) Iterables.getOnlyElement(resolvedBalancerAddr.getAddresses());
  assertThat(resolvedBalancerSockAddr.getAddress()).isEqualTo(lbAddr);
  assertThat(resolvedBalancerSockAddr.getPort()).isEqualTo(lbPort);
  assertThat(result.getServiceConfig().getConfig()).isNotNull();
  verify(mockAddressResolver).resolveAddress(hostName);
  verify(mockResourceResolver).resolveTxt("_grpc_config." + hostName);
  verify(mockResourceResolver).resolveSrv("_grpclb._tcp." + hostName);
}
 
Command processPacketInMessage(IOFSwitch sw, OFPacketIn pi,
		FloodlightContext cntx) {
	Ethernet eth = IFloodlightProviderService.bcStore.get(cntx,
			IFloodlightProviderService.CONTEXT_PI_PAYLOAD);
	long dpid = sw.getId();
	short inport = pi.getInPort();
	Port switch_port = new Port(dpid, inport);
	MACAddress src_mac = eth.getSourceMAC();

	PortProperty pp = this.port_list.get(switch_port);
	if (pp == null)
		return Command.CONTINUE;
	DeviceType dt = pp.getDeviceType();

	// testify if the packet is the response to Host Probing
	if (eth.isBroadcast())
		return Command.CONTINUE;

		try {
			if (eth.getEtherType() == Ethernet.TYPE_IPv4){
				IPv4 ip = (IPv4) eth.getPayload();
				InetAddress srcIP = InetAddress.getByAddress(
						BigInteger.valueOf(ip.getSourceAddress()).toByteArray());
				InetAddress dstIP = InetAddress.getByAddress(
						BigInteger.valueOf(ip.getDestinationAddress()).toByteArray());
				if(ip.getProtocol() == IPv4.PROTOCOL_ICMP){
					ICMP icmp = (ICMP) ip.getPayload();
					if (icmp.getIcmpCode() == ICMP.ECHO_REPLY){
						if (hostProber.probedPorts.containsKey(switch_port)){
							for (HostEntity he : hostProber.probedPorts.get(switch_port)){
								if (he.ip.equals(srcIP) && he.mac.equals(eth.getSourceMAC())  &&
										InetAddress.getByName(ControllerIP).equals(dstIP)){
									//we think this is the response to host probing
									//Violation: host is still reachable at previous locaiton
									logger.warn("Violation: Host Move from switch {} port {} is still reachable"
											, dpid, inport);
									List<HostEntity> hostEntity = hostProber.probedPorts.get(switch_port);
									hostEntity.remove(he);
									hostProber.probedPorts.put(switch_port, hostEntity);
									return Command.STOP;
								}
							}
						}
					}
				}
			}
		} catch (UnknownHostException e) {
			logger.error("Cannot construct InetAddress, {}", e.getMessage());
		}
		

	// if the payload is lldp, we do not verify correctness of LLDP in this point
	if (eth.getPayload() instanceof LLDP) {
		if (dt == DeviceType.ANY) {
			pp.setPortSwitch();
		} else if (dt == DeviceType.HOST) {
			// Violation: impossible to receive LLDP from HOST port, Countermeasure: eat the lldp
			logger.warn("Violation: Receive LLDP packets from HOST port: SW {} port {}"
					, dpid, inport);
			return Command.STOP;
		}
	}
	// if the payload is host traffic
	else {
		// if this host found before
		if (this.mac_port.containsKey(src_mac)) { 
			Port host_location = this.mac_port.get(src_mac);
			if (host_location == switch_port) {
				// this port is first hop port for found host
				if (dt == DeviceType.SWITCH) {
					// Violation:  receive first hop traffic from SWITH port
					logger.warn("Violation: Receive first hop host packets from SWITCH port: SW {} port {}"
							, dpid, inport);
					//return Command.STOP;
				} else if (dt == DeviceType.ANY) {
					//this happened if the port is shutdown
					pp.setPortHost();
					pp.disableHostShutDown(src_mac);
					this.port_list.put(switch_port, pp);
				}
			}
		} 
		else { // new host
			this.mac_port.put(src_mac, switch_port);

			pp.addHost(src_mac);	
			pp.setPortAny();
			this.port_list.put(switch_port, pp);
	

		}
		
	}
	return Command.CONTINUE;
}
 
源代码15 项目: simplejmx   文件: DoubleServerTest.java
@Test
public void testJmxServer() throws Exception {
	JmxServer server1 = null;
	JmxServer server2 = null;
	JmxClient client1 = null;
	JmxClient client2 = null;
	TestObject testObject = new TestObject();
	try {
		InetAddress serverAddr1 = InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 });
		int serverPort1 = DEFAULT_PORT;
		server1 = new JmxServer(serverAddr1, serverPort1);
		InetAddress serverAddr2 = InetAddress.getLocalHost();
		int serverPort2 = DEFAULT_PORT + 1;
		server2 = new JmxServer(serverAddr2, serverPort2);

		server1.start();
		server2.start();

		/*
		 * NOTE: since the platform MbeanServer is used, this registers one both servers.
		 */
		server1.register(testObject);

		// Thread.sleep(1000000000);

		client1 = new JmxClient(serverAddr1, serverPort1);
		client2 = new JmxClient(serverAddr2, serverPort2);

		testClient(client1);
		testClient(client2);
	} finally {
		if (server1 != null) {
			server1.unregister(testObject);
			IoUtils.closeQuietly(server1);
		}
		if (server2 != null) {
			server2.unregister(testObject);
			IoUtils.closeQuietly(server2);
		}
		System.gc();
	}
}
 
源代码16 项目: Bytecoder   文件: SocketPermission.java
/**
 * Initialize the SocketPermission object. We don't do any DNS lookups
 * as this point, instead we hold off until the implies method is
 * called.
 */
private void init(String host, int mask) {
    // Set the integer mask that represents the actions

    if ((mask & ALL) != mask)
        throw new IllegalArgumentException("invalid actions mask");

    // always OR in RESOLVE if we allow any of the others
    this.mask = mask | RESOLVE;

    // Parse the host name.  A name has up to three components, the
    // hostname, a port number, or two numbers representing a port
    // range.   "www.example.com:8080-9090" is a valid host name.

    // With IPv6 an address can be 2010:836B:4179::836B:4179
    // An IPv6 address needs to be enclose in []
    // For ex: [2010:836B:4179::836B:4179]:8080-9090
    // Refer to RFC 2732 for more information.

    int rb = 0 ;
    int start = 0, end = 0;
    int sep = -1;
    String hostport = host;
    if (host.charAt(0) == '[') {
        start = 1;
        rb = host.indexOf(']');
        if (rb != -1) {
            host = host.substring(start, rb);
        } else {
            throw new
                IllegalArgumentException("invalid host/port: "+host);
        }
        sep = hostport.indexOf(':', rb+1);
    } else {
        start = 0;
        sep = host.indexOf(':', rb);
        end = sep;
        if (sep != -1) {
            host = host.substring(start, end);
        }
    }

    if (sep != -1) {
        String port = hostport.substring(sep+1);
        try {
            portrange = parsePort(port);
        } catch (Exception e) {
            throw new
                IllegalArgumentException("invalid port range: "+port);
        }
    } else {
        portrange = new int[] { PORT_MIN, PORT_MAX };
    }

    hostname = host;

    // is this a domain wildcard specification
    if (host.lastIndexOf('*') > 0) {
        throw new
           IllegalArgumentException("invalid host wildcard specification");
    } else if (host.startsWith("*")) {
        wildcard = true;
        if (host.equals("*")) {
            cname = "";
        } else if (host.startsWith("*.")) {
            cname = host.substring(1).toLowerCase();
        } else {
          throw new
           IllegalArgumentException("invalid host wildcard specification");
        }
        return;
    } else {
        if (!host.isEmpty()) {
            // see if we are being initialized with an IP address.
            char ch = host.charAt(0);
            if (ch == ':' || Character.digit(ch, 16) != -1) {
                byte ip[] = IPAddressUtil.textToNumericFormatV4(host);
                if (ip == null) {
                    ip = IPAddressUtil.textToNumericFormatV6(host);
                }
                if (ip != null) {
                    try {
                        addresses =
                            new InetAddress[]
                            {InetAddress.getByAddress(ip) };
                        init_with_ip = true;
                    } catch (UnknownHostException uhe) {
                        // this shouldn't happen
                        invalid = true;
                    }
                }
            }
        }
    }
}
 
源代码17 项目: cacheonix-core   文件: SerializerUtils.java
public static InetAddress readInetAddress(final DataInput in, final boolean fixedLength) throws IOException {


      // Read boolean null value marker
      if (in.readBoolean()) {

         // The address is null
         if (fixedLength) {

            // Read padded bytes
            in.readByte();
            in.readLong();
            in.readLong();
         }

         return null;
      }

      // Read the address
      final byte addrLength = in.readByte();
      switch (addrLength) {
         case 4:

            final int address = in.readInt();
            if (fixedLength) {

               // Pad 12 bytes
               in.readInt();
               in.readLong();
            }
            final byte[] addr = new byte[4];
            addr[0] = (byte) (address >>> 24 & 0xFF);
            addr[1] = (byte) (address >>> 16 & 0xFF);
            addr[2] = (byte) (address >>> 8 & 0xFF);
            addr[3] = (byte) (address & 0xFF);
            return InetAddress.getByAddress(addr);
         case 16:

            final byte[] result = new byte[16];
            in.readFully(result);
            return InetAddress.getByAddress(result);
         default:

            throw new IOException("Unknown address format, length: " + addrLength);
      }
   }
 
源代码18 项目: BUbiNG   文件: FakeResolver.java
@Override
public InetAddress[] resolve(final String hostname) throws UnknownHostException {
	if ("localhost".equals(hostname)) return Frontier.LOOPBACK;
	return new InetAddress[] { InetAddress.getByAddress(com.google.common.primitives.Ints.toByteArray(hostname.hashCode())) };
}
 
源代码19 项目: BiglyBT   文件: NetworkAdminASNImpl.java
protected InetAddress
getCIDREndAddress()

	throws NetworkAdminException
{

	int	pos = bgp_prefix.indexOf('/');

	try{
		InetAddress	start = InetAddress.getByName( bgp_prefix.substring(0,pos));

		int	cidr_mask = Integer.parseInt( bgp_prefix.substring( pos+1 ));

		byte[]	bytes = start.getAddress();

		for ( int i=cidr_mask;i<bytes.length*8;i++){
			
			bytes[i/8] |= 1<<(7-(i%8));
		}
		
		return( InetAddress.getByAddress( bytes ));

	}catch( Throwable e ){

		throw( new NetworkAdminException( "Parse failure for '" + bgp_prefix + "'", e ));
	}
}
 
源代码20 项目: BiglyBT   文件: HostNameToIPResolver.java
public static InetAddress
syncResolve(
	String	host )

	throws UnknownHostException
{
	if ( isNonDNSName( host )){

		throw( new HostNameToIPResolverException( "non-DNS name '" + host + "'", true ));
	}

		// handle any raw addresses up front

	byte[]	bytes = textToNumericFormat( host );

	if ( bytes != null ){

		return( InetAddress.getByAddress( bytes ));
	}

		// filter out partially complete raw addresses by applying the basic rule in ftp://ftp.is.co.za/rfc/rfc3696.txt
		// at least one dot + not all numeric

	char[]	chars = host.toCharArray();

	boolean	resolve = false;

	for (int i=0;i<chars.length;i++){

		if ( !( chars[i] == '.' || Character.isDigit(chars[i]))){

			resolve	= true;

			break;
		}
	}

	if ( resolve && host.startsWith( "websocket." )){

		resolve = false;

		for (int i=10;i<chars.length;i++){

			if ( !Character.isDigit(chars[i])){

				resolve = true;

				break;
			}
		}
	}

	if ( resolve ){

		return( InetAddress.getByName( host));

	}else{

		throw( new UnknownHostException( "Host '" + host + "' doesn't obey minimal validation rules"));
	}
}