Here you can find the source of toIpAddrString(final InetAddress addr)
toIpAddrString
Parameter | Description |
---|---|
addr | IP address |
public static String toIpAddrString(final InetAddress addr)
//package com.java2s; /******************************************************************************* * This file is part of OpenNMS(R)./*from w w w .ja v a2 s .co m*/ * * Copyright (C) 2007-2012 The OpenNMS Group, Inc. * OpenNMS(R) is Copyright (C) 1999-2012 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * * OpenNMS(R) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * OpenNMS(R) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenNMS(R). If not, see: * http://www.gnu.org/licenses/ * * For more information contact: * OpenNMS(R) Licensing <license@opennms.org> * http://www.opennms.org/ * http://www.opennms.com/ *******************************************************************************/ import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; import java.net.UnknownHostException; public class Main { /** * <p>toIpAddrString</p> * * @param addr IP address * @return a {@link java.lang.String} object. */ public static String toIpAddrString(final InetAddress addr) { if (addr == null) { throw new IllegalArgumentException("Cannot convert null InetAddress to a string"); } else { final byte[] address = addr.getAddress(); if (address == null) { // This case can occur when Jersey uses Spring bean classes which use // CGLIB bytecode manipulation to generate InetAddress classes. This will // occur during REST calls. {@see org.opennms.web.rest.NodeRestServiceTest} // throw new IllegalArgumentException( "InetAddress instance violates contract by returning a null address from getAddress()"); } else if (addr instanceof Inet4Address) { return toIpAddrString(address); } else if (addr instanceof Inet6Address) { final Inet6Address addr6 = (Inet6Address) addr; final StringBuilder sb = new StringBuilder(toIpAddrString(address)); if (addr6.getScopeId() != 0) { sb.append("%").append(addr6.getScopeId()); } return sb.toString(); } else { throw new IllegalArgumentException("Unknown type of InetAddress: " + addr.getClass().getName()); } } } /** * <p>toIpAddrString</p> * * @param addr an array of byte. * @return a {@link java.lang.String} object. */ public static String toIpAddrString(final byte[] addr) { if (addr.length == 4) { return getInetAddress(addr).getHostAddress(); } else if (addr.length == 16) { return String.format("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], addr[6], addr[7], addr[8], addr[9], addr[10], addr[11], addr[12], addr[13], addr[14], addr[15]).intern(); } else { throw new IllegalArgumentException("IP address has an illegal number of bytes: " + addr.length); } } /** * <p>getInetAddress</p> * * @param ipAddrOctets an array of byte. * @return a {@link java.net.InetAddress} object. */ public static InetAddress getInetAddress(final int[] octets, final int offset, final int length) { final byte[] addressBytes = new byte[length]; for (int i = 0; i < addressBytes.length; i++) { addressBytes[i] = Integer.valueOf(octets[i + offset]).byteValue(); } return getInetAddress(addressBytes); } /** * <p>getInetAddress</p> * * @param ipAddrOctets an array of byte. * @return a {@link java.net.InetAddress} object. */ public static InetAddress getInetAddress(final byte[] ipAddrOctets) { try { return InetAddress.getByAddress(ipAddrOctets); } catch (final UnknownHostException e) { throw new IllegalArgumentException( "Invalid IPAddress " + ipAddrOctets + " with length " + ipAddrOctets.length); } } /** * <p>getInetAddress</p> * * @param dottedNotation a {@link java.lang.String} object. * @return a {@link java.net.InetAddress} object. */ public static InetAddress getInetAddress(final String dottedNotation) { try { return InetAddress.getByName(dottedNotation); } catch (final UnknownHostException e) { throw new IllegalArgumentException("Invalid IPAddress " + dottedNotation); } } }