2013년 5월 7일 화요일

IP 주소로 해당 실제 지역(국가,도시) 를 찾아주는 API, MAXMIND

www.maxmind.com

무료 javascript api를 제공해주고, 또 csv 나 binary 로 된 database 도 제공해준다!

좀더 강력한 기능이나, 꾸준한 업데이트를 받고 싶다면 구입해야 하지만...

이정도만 되도 충분히 사용할 거 같다. 좋네...



무료로 제공하는 메서드는 아래 표에서 위에 두개만 쓸수있다.

API

After the geoip2.js script is imported, you will have the geoip2 module in your namespace. This module provides four functions:
FunctionDescription
geoip2.country(onSuccess, onError, options)Calls the GeoIP2 Country endpoint using the routable IP address associated with the machine on which it is running.
geoip2.city(onSuccess, onError, options)Calls the GeoIP2 Precision City endpoint using the routable IP address associated with the machine on which it is running.
geoip2.cityISPOrg(onSuccess, onError, options)Calls the GeoIP2 Precision City/ISP/Org endpoint using the routable IP address associated with the machine on which it is running. Only available to paying customers.
geoip2.omni(onSuccess, onError, options)Calls the GeoIP2 Precision Omni endpoint using the routable IP address associated with the machine on which it is running. Only available to paying customers.

Sample Code

<script type="text/javascript" src="//j.maxmind.com/js/geoip2.js"></script>

<script type="text/javascript">

var onSuccess = function(location){
    alert(
        "Lookup successful:\n\n"
        + JSON.stringify(location, undefined, 4)
    );
};

var onError = function(error){
    alert(
        "Error:\n\n"
        + JSON.stringify(error, undefined, 4)
    );
};

geoip2.city(onSuccess, onError);

</script>

Sample Object

The following is an example of a JavaScript object passed to the successCallback.
{
  "country": {
    "iso_code": "KR",
    "names": {
      "zh-CN": "韩国",
      "en": "South Korea",
      "ja": "大韓民国",
      "ru": "Южная Корея"
    },
    "geoname_id": 1835841
  },
  "city": {
    "names": {
      "en": "Seoul",
      "ja": "ソウル特別市",
      "ru": "Сеул"
    },
    "geoname_id": 1835848
  },
  "subdivisions": [
    {
      "iso_code": "11",
      "names": {
        "en": "Seoul"
      },
      "geoname_id": 1835847
    },
    {
      "iso_code": "11",
      "names": {
        "en": "Seoul"
      },
      "geoname_id": 1835847
    }
  ],
  "location": {
    "longitude": "126.977969",
    "latitude": "37.566535",
    "time_zone": "Asia/Seoul"
  },
  "continent": {
    "names": {
      "zh-CN": "亚洲",
      "en": "Asia",
      "ja": "アジア",
      "ru": "Азия"
    },
    "continent_code": "AS",
    "geoname_id": 6255147
  },
  "traits": {
    "ip_address": "152.99.241.12"
  },
  "registered_country": {
    "iso_code": "KR",
    "names": {
      "en": "South Korea",
      "zh-CN": "韩国",
      "ja": "大韓民国",
      "ru": "Южная Корея"
    },
    "geoname_id": 1835841
  },
  "postal": {},
  "represented_country": {
    "names": {}
  }
}



Maxmind 를 무료로 쓰기위해서는 도메인 등록만하면 된다.

자 이제 ㄱㄱ