Package org.jmule.countrylocator

Source Code of org.jmule.countrylocator.CountryLocator

/*
*  JMule - Java file sharing client
*  Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org )
*
*  Any parts of this program derived from other projects, or contributed
*  by third-party developers are copyrighted by their respective authors.
*
*  This program 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 2
*  of the License, or (at your option) any later version.
*
*  This program 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 this program; if not, write to the Free Software
*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*
*/
package org.jmule.countrylocator;

import java.io.File;
import java.io.IOException;
import java.net.InetAddress;

import org.jmule.core.configmanager.ConfigurationManager;

import com.maxmind.geoip.Country;
import com.maxmind.geoip.LookupService;

/**
*
* Created on Aug 12, 2008
* @author javajox
* @author binary256_
* @version $Revision: 1.4 $
* Last changed by $Author: binary255 $ on $Date: 2010/01/01 14:48:56 $
*/
public class CountryLocator {
  public static final String GEOIP_DAT       = ConfigurationManager.SETTINGS_DIR + File.separator + "geoip.dat";
  public static int FLAG_WIDTH          = 25;
  public static int FLAG_HEIGHT         = 15;
 
  private static CountryLocator instance;
 
  private LookupService lookup_service;
 
  private boolean service_down = false;
 
  public static final String COUNTRY_NAME_NOT_AVAILABLE = "N/A";
 
  public static final String COUNTRY_CODE_NOT_AVAILABLE = "--";
 
  private CountryLocator() {
 
    try {
     
      lookup_service = new LookupService( GEOIP_DAT, LookupService.GEOIP_MEMORY_CACHE );   
     
    } catch (IOException e) {
     
          service_down = true;
    }
   
  }
 
  public static CountryLocator getInstance() {
   
    if( instance == null ) {
     
      instance = new CountryLocator();
     
    }
   
    return instance;
  }
 
  public Country getCountry(InetAddress inetAddress) {
   
    return service_down ? null : lookup_service.getCountry( inetAddress );
  }
 
  public Country getCountry(long ipAddress) {
   
    return service_down ? null : lookup_service.getCountry( ipAddress );
  }
 
  public Country getCountry(String ipAddress) {
   
    return service_down ? null : lookup_service.getCountry( ipAddress );
  }
 
  public String getCountryName( InetAddress inetAddress ) {
   
    return service_down ? null : getCountry( inetAddress ).getName();
  }
 
  public String getCountryName( long inetAddress ) {
   
    return service_down ? null : getCountry( inetAddress ).getName();
  }
 
  public String getCountryName( String inetAddress ) {
   
    return service_down ? null : getCountry( inetAddress ).getName();
  }
 
  //public String getCountryCode( InetAddress inetAddress ) {
   
  //  return service_down ? null : getCountry( inetAddress ).getCode();
  //}
 
  //public String getCountryCode( long inetAddress ) {
   
  //  return service_down ? null : getCountry( inetAddress ).getCode();
  //}
 
  //public String getCountryCode( String inetAddress ) {
   
  //  return service_down ? null : getCountry( inetAddress ).getCode();
  //}
 
  public String getCountryCode(Object inetAddress) {
   
    if( service_down ) return null;
   
    if(inetAddress instanceof String)
      return lookup_service.getCountry((String)inetAddress).getCode();
   
    if(inetAddress instanceof InetAddress)
        return lookup_service.getCountry((InetAddress)inetAddress).getCode();
   
    return null;
  }
 
  public boolean isServiceDown() {
    return service_down;
  }

 
}
TOP

Related Classes of org.jmule.countrylocator.CountryLocator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.