ジオロケーション、幅= 320、高さ= 240

この例では、IPアドレスを使用して場所(国、都市、緯度、経度)を見つける方法を示します。

1. GeoLiteデータベース


MaxMind

は無料のGeoLiteデータベース(IPアドレスからロケーション)を提供します。

  1. 無料のGeoLiteを無料で入手するデータベース –


here

。 GeoIPクライアントJava APIを入手する –


here

。コードを開始します。

2. GeoLite Javaの例

GeoIPクライアントJava APIを使用してIPアドレスを使用して場所を見つける例。

GetLocationExample.java

package com.mkyong.analysis.location;

import java.io.File;
import java.io.IOException;
import com.maxmind.geoip.Location;
import com.maxmind.geoip.LookupService;
import com.maxmind.geoip.regionName;
import com.mkyong.analysis.location.mode.ServerLocation;

public class GetLocationExample {

  public static void main(String[]args) {
    GetLocationExample obj = new GetLocationExample();
    ServerLocation location = obj.getLocation("206.190.36.45");
    System.out.println(location);
  }

  public ServerLocation getLocation(String ipAddress) {

    File file = new File(
        "C:\\resources\\location\\GeoLiteCity.dat");
    return getLocation(ipAddress, file);

  }

  public ServerLocation getLocation(String ipAddress, File file) {

    ServerLocation serverLocation = null;

    try {

    serverLocation = new ServerLocation();

    LookupService lookup = new LookupService(file,LookupService.GEOIP__MEMORY__CACHE);
    Location locationServices = lookup.getLocation(ipAddress);

    serverLocation.setCountryCode(locationServices.countryCode);
    serverLocation.setCountryName(locationServices.countryName);
    serverLocation.setRegion(locationServices.region);
    serverLocation.setRegionName(regionName.regionNameByCode(
             locationServices.countryCode, locationServices.region));
    serverLocation.setCity(locationServices.city);
    serverLocation.setPostalCode(locationServices.postalCode);
    serverLocation.setLatitude(String.valueOf(locationServices.latitude));
    serverLocation.setLongitude(String.valueOf(locationServices.longitude));

    } catch (IOException e) {
        System.err.println(e.getMessage());
    }

    return serverLocation;

  }
}

出力

ServerLocation[countryCode=US, countryName=United States, region=CA,
    regionName=California, city=Sunnyvale, postalCode=94089,
    latitude=37.424896, longitude=-122.0074]....

=== 参考文献

.  http://en.wikipedia.org/wiki/Geolocation__software[Wikipedia:

ジオロケーションソフトウェア]。 http://dev.maxmind.com/geoip/legacy/geolite/[GeoLite無料ダウンロード可能

データベース]

link://tag/geoip/[geoip]link://タグ/java/[java]