public String GetIp(Boolean isV4) { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> ipAddr = intf.getInetAddresses(); ipAddr.hasMoreElements(); ) { InetAddress inetAddress = ipAddr.nextElement(); if(isV4) { // ipv4地址 if (!inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv4Address(inetAddress.getHostAddress())) { return inetAddress.getHostAddress(); } }else{ // ipv6地址 if (!inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv6Address(inetAddress.getHostAddress())) { return inetAddress.getHostAddress(); } } } } } catch (Exception ex) { // } return ""; }
if (InetAddressUtils.isIPv4Address(address.getHostAddress())) { log.debug(name + " ... has IPV4 addr " + address); if(checkForLocalhost && (!name.equalsIgnoreCase(Configuration.LOOP_BACK_INTERFACE) || !address.getHostAddress().equalsIgnoreCase(Configuration.LOOP_BACK_ADDRESS))) {
/** * Returns true if the provided address is an IPv6 address (or could be interpreted as one). This method is more * lenient than {@link InetAddressUtils#isIPv6Address(String)} because of different interpretations of IPv4-mapped * IPv6 addresses. * * See RFC 5952 Section 4 for more information on textual representation of the IPv6 addresses. * * @param address the address in text form * @return true if the address is or could be parsed as an IPv6 address */ static boolean isIPv6Address(String address) { // Note: InetAddressUtils#isIPv4MappedIPv64Address() fails on addresses that do not compress the leading 0:0:0... to :: // Expanded for debugging purposes boolean isNormalIPv6 = InetAddressUtils.isIPv6Address(address); // If the last two hextets are written in IPv4 form, treat it as an IPv6 address as well String everythingAfterLastColon = StringUtils.substringAfterLast(address, ":"); boolean isIPv4 = InetAddressUtils.isIPv4Address(everythingAfterLastColon); boolean isIPv4Mapped = InetAddressUtils.isIPv4MappedIPv64Address(everythingAfterLastColon); boolean isCompressable = address.contains("0:0") && !address.contains("::"); return isNormalIPv6 || isIPv4; }
cn.indexOf('.', 2) != -1 && acceptableCountryWildcard(cn) && !InetAddressUtils.isIPv4Address(host);
InetAddress addr = addrs.nextElement(); log.debug(name + " ... has addr " + addr); if (InetAddressUtils.isIPv4Address(addr.getHostAddress())) { if(!useUpnpIface) { if(traceupnp)
/** * @since 0.9.34 */ public static boolean isIPv4Address(String host) { return InetAddressUtils.isIPv4Address(host); }
/** * @return true if either IPv4 or IPv6 * @since 0.9.34 */ public static boolean isIPAddress(String host) { return InetAddressUtils.isIPv4Address(host) || InetAddressUtils.isIPv6Address(host); }
InetAddress addr = addrs.nextElement(); log.debug(name + " ... has addr " + addr); if (InetAddressUtils.isIPv4Address(addr.getHostAddress())) { IPsPerNic++;
public final void verify( final String host, final X509Certificate cert) throws SSLException { final boolean ipv4 = InetAddressUtils.isIPv4Address(host); final boolean ipv6 = InetAddressUtils.isIPv6Address(host); final int subjectType = ipv4 || ipv6 ? IP_ADDRESS_TYPE : DNS_NAME_TYPE; final List<String> subjectAlts = extractSubjectAlts(cert, subjectType); if (subjectAlts != null && !subjectAlts.isEmpty()) { if (ipv4) { matchIPAddress(host, subjectAlts); } else if (ipv6) { matchIPv6Address(host, subjectAlts); } else { matchDNSName(host, subjectAlts, this.publicSuffixMatcher); } } else { // CN matching has been deprecated by rfc2818 and can be used // as fallback only when no subjectAlts are available final X500Principal subjectPrincipal = cert.getSubjectX500Principal(); final String cn = extractCN(subjectPrincipal.getName(X500Principal.RFC2253)); if (cn == null) { throw new SSLException("Certificate subject for <" + host + "> doesn't contain " + "a common name and does not have alternative names"); } matchCN(host, cn, this.publicSuffixMatcher); } }
static HostNameType determineHostFormat(final String host) { if (InetAddressUtils.isIPv4Address(host)) { return HostNameType.IPv4; } String s = host; if (s.startsWith("[") && s.endsWith("]")) { s = host.substring(1, host.length() - 1); } if (InetAddressUtils.isIPv6Address(s)) { return HostNameType.IPv6; } return HostNameType.DNS; }
private static boolean isIPAddress(final String hostname) { return hostname != null && (InetAddressUtils.isIPv4Address(hostname) || InetAddressUtils.isIPv6Address(hostname)); }
public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && InetAddressUtils.isIPv4Address(inetAddress.getHostAddress())) { return inetAddress.getHostAddress(); } } } } catch (Exception ex) { Log.e("IP Address", ex.toString()); } return null; }
static boolean domainMatch(final String domain, final String host) { if (InetAddressUtils.isIPv4Address(host) || InetAddressUtils.isIPv6Address(host)) { return false; } final String normalizedDomain = domain.startsWith(".") ? domain.substring(1) : domain; if (host.endsWith(normalizedDomain)) { final int prefix = host.length() - normalizedDomain.length(); // Either a full match or a prefix endidng with a '.' if (prefix == 0) { return true; } if (prefix > 1 && host.charAt(prefix - 1) == '.') { return true; } } return false; }
public static boolean validContainer(String container) throws InvalidContainerNameException { if (container != null && container.length() < 4) { throw new InvalidContainerNameException("Container " + container + " length must be at least 3 letters"); } if (InetAddressUtils.isIPv4Address(container)) { throw new InvalidContainerNameException("Container " + container + " is of IP address pattern"); } return true; }
public static boolean validContainer(String container) throws InvalidContainerNameException { if (container != null && container.length() < 4) { throw new InvalidContainerNameException("Container " + container + " length must be at least 3 letters"); } if (InetAddressUtils.isIPv4Address(container)) { throw new InvalidContainerNameException("Container " + container + " is of IP address pattern"); } return true; }
@Override public boolean doesSatisfyTicketExpirationPolicy(final HttpServletRequest request, final TicketState state) { final String currentIp = request.getRemoteAddr(); if (InetAddressUtils.isIPv6Address(currentIp)) { logger.debug("Remote IP [{}] is a valid standard (non-compressed) IPv6 address", currentIp); } else if (InetAddressUtils.isIPv6HexCompressedAddress(currentIp)) { logger.debug("Remote IP [{}] is a valid IPv6 address (including compressed).", currentIp); } else if (InetAddressUtils.isIPv6StdAddress(currentIp)) { logger.debug("Remote IP [{}] is a valid compressed IPv6 address", currentIp); } else if (InetAddressUtils.isIPv4Address(currentIp)) { logger.debug("Remote IP [{}] is a valid IPv4 address ", currentIp); } else { logger.debug("Remote IP [{}] does not match a known IP syntax", currentIp); } return this.ipAddressPattern.matcher(currentIp).find(); }
@Override public final void verify( final String host, final X509Certificate cert) throws SSLException { final boolean ipv4 = InetAddressUtils.isIPv4Address(host); final boolean ipv6 = InetAddressUtils.isIPv6Address(host); final int subjectType = ipv4 || ipv6 ? DefaultHostnameVerifier.IP_ADDRESS_TYPE : DefaultHostnameVerifier.DNS_NAME_TYPE; final List<String> subjectAlts = DefaultHostnameVerifier.extractSubjectAlts(cert, subjectType); final X500Principal subjectPrincipal = cert.getSubjectX500Principal(); final String cn = DefaultHostnameVerifier.extractCN(subjectPrincipal.getName(X500Principal.RFC2253)); verify(host, cn != null ? new String[] {cn} : null, subjectAlts != null && !subjectAlts.isEmpty() ? subjectAlts.toArray(new String[subjectAlts.size()]) : null); }
@Override public final void verify( final String host, final X509Certificate cert) throws SSLException { final boolean ipv4 = InetAddressUtils.isIPv4Address(host); final boolean ipv6 = InetAddressUtils.isIPv6Address(host); final int subjectType = ipv4 || ipv6 ? DefaultHostnameVerifier.IP_ADDRESS_TYPE : DefaultHostnameVerifier.DNS_NAME_TYPE; final List<String> subjectAlts = DefaultHostnameVerifier.extractSubjectAlts(cert, subjectType); final X500Principal subjectPrincipal = cert.getSubjectX500Principal(); final String cn = DefaultHostnameVerifier.extractCN(subjectPrincipal.getName(X500Principal.RFC2253)); verify(host, cn != null ? new String[] {cn} : null, subjectAlts != null && !subjectAlts.isEmpty() ? subjectAlts.toArray(new String[subjectAlts.size()]) : null); }
public final void verify( final String host, final X509Certificate cert) throws SSLException { final boolean ipv4 = InetAddressUtils.isIPv4Address(host); final boolean ipv6 = InetAddressUtils.isIPv6Address(host); final int subjectType = ipv4 || ipv6 ? DefaultHostnameVerifier.IP_ADDRESS_TYPE : DefaultHostnameVerifier.DNS_NAME_TYPE; final List<String> subjectAlts = DefaultHostnameVerifier.extractSubjectAlts(cert, subjectType); final X500Principal subjectPrincipal = cert.getSubjectX500Principal(); final String cn = DefaultHostnameVerifier.extractCN(subjectPrincipal.getName(X500Principal.RFC2253)); verify(host, cn != null ? new String[] {cn} : null, subjectAlts != null && !subjectAlts.isEmpty() ? subjectAlts.toArray(new String[subjectAlts.size()]) : null); }
@Override public final void verify( final String host, final X509Certificate cert) throws SSLException { final boolean ipv4 = InetAddressUtils.isIPv4Address(host); final boolean ipv6 = InetAddressUtils.isIPv6Address(host); final int subjectType = ipv4 || ipv6 ? DefaultHostnameVerifier.IP_ADDRESS_TYPE : DefaultHostnameVerifier.DNS_NAME_TYPE; final List<String> subjectAlts = DefaultHostnameVerifier.extractSubjectAlts(cert, subjectType); final X500Principal subjectPrincipal = cert.getSubjectX500Principal(); final String cn = DefaultHostnameVerifier.extractCN(subjectPrincipal.getName(X500Principal.RFC2253)); verify(host, cn != null ? new String[] {cn} : null, subjectAlts != null && !subjectAlts.isEmpty() ? subjectAlts.toArray(new String[subjectAlts.size()]) : null); }