public IPLocation getLocationByIp(String ip) {
		IPLocation ipLoc = null;
		if(ipCache.containsKey(ip)){
			ipLoc = ipCache.get(ip);
		}
		
		if (ipLoc == null) {			
			ipLoc = getIPLocation(Util.getIpByteArrayFromString(ip));
			ipCache.put(ip, ipLoc.getCopy());
		}
		return ipLoc;
	}