/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.visit.util; import java.util.LinkedHashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 搜索引擎工具 * * @author wu_zhijun * */ public class SourceUtil { private static Pattern domainPattern = Pattern.compile("(?<=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv)", Pattern.CASE_INSENSITIVE); public static Map<String,String> searchEngineMap = null; static{ searchEngineMap = new LinkedHashMap<String, String>(); searchEngineMap.put("baidu.com", "百度"); searchEngineMap.put("google.com", "谷歌"); searchEngineMap.put("yahoo.com","雅虎"); searchEngineMap.put("bing.com","必应"); searchEngineMap.put("sogou.com","搜狗"); searchEngineMap.put("soso.com","搜搜"); searchEngineMap.put("youdao.com", "有道"); } public static String getDomain(String referer){ Matcher matcher = domainPattern.matcher(referer); matcher.find(); String domain = null; try{ domain = matcher.group(); }catch(Exception e){ } return domain; } public static String getDomainName(String referer){ String domain = getDomain(referer); if (domain == null) return null; return searchEngineMap.get(domain); } public static String getWebSiteUrl(String referer){ if (referer == null || referer.length() < 8) return null; referer = referer.substring(7); int firstSlash = referer.indexOf("/"); if (firstSlash > 0){ referer = referer.substring(0, firstSlash); } return referer; } public static void main(String[] args){ String referer = "http://www.wzj.com"; System.out.println(getDomain(referer)); System.out.println(getWebSiteUrl(referer)); referer = "http://127.0.0.1"; System.out.println(getDomainName(referer)); } }