All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scouter.util.IPUtil Maven / Gradle / Ivy

There is a newer version: 2.20.0
Show newest version
/*
 *  Copyright 2015 the original author or authors. 
 *  @https://github.com/scouter-project/scouter
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); 
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License. 
 */

package scouter.util;

import scouter.io.DataOutputX;

public class IPUtil {
	public static String toString(int ip) {
		return toString(DataOutputX.toBytes(ip));
	}
	public static String toString(byte[] ip) {
		if (ip == null)
			return "0.0.0.0";
		try {
			StringBuffer sb = new StringBuffer();
			sb.append(ip[0] & 0xff);
			sb.append(".");
			sb.append(ip[1] & 0xff);
			sb.append(".");
			sb.append(ip[2] & 0xff);
			sb.append(".");
			sb.append(ip[3] & 0xff);
			return sb.toString();
		} catch (Throwable e) {
			return "0.0.0.0";
		}
	}

	public static byte[] toBytes(String ip) {
		if (ip == null) {
			return empty;
		}
		byte[] result = new byte[4];
		String[] s = StringUtil.split(ip, '.');
		long val;
		try {
			if (s.length != 4)
				return empty;

			for (int i = 0; i < 4; i++) {
				val = Integer.parseInt(s[i]);
				if (val < 0 || val > 0xff)
					return null;
				result[i] = (byte) (val & 0xff);
			}
		} catch (Throwable e) {
			return empty;
		}
		return result;
	}

	public static boolean isOK(byte[] ip){
		return  ip != null && ip.length==4;
	}
	public static boolean isNotLocal(byte[] ip) {
		return isOK(ip) && (ip[0] & 0xff) != 127;
	}

	private static byte[] empty = new byte[] { 0, 0, 0, 0 };


	public static void main(String[] args) {
		String[] s = StringUtil.split("127.0.0.1", '.');
		System.out.println(s[0]);
		System.out.println(s[1]);
		System.out.println(s[2]);
		System.out.println(s[3]);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy