ngx_http_ipdb_module icon indicating copy to clipboard operation
ngx_http_ipdb_module copied to clipboard

Another nginx http geoip module by ipdb

Name

travis-ci Coverage Status

ngx_http_ipdb_module - creates variables with values depending on the client IP address or specifies address, using the precompiled ipip.net ipdb.

Table of Contents

  • Name
  • Status
  • Install
  • Example Configuration
  • Directives
    • ipdb
    • ipdb_language
    • ipdb_proxy
    • ipdb_proxy_recursive
    • ipdb_specifies_addr
  • Variable
    • $ipdb_country_name
    • $ipdb_region_name
    • $ipdb_city_name
    • $ipdb_owner_domain
    • $ipdb_isp_domain
    • $ipdb_latitude
    • $ipdb_longitude
    • $ipdb_timezone
    • $ipdb_utc_offset
    • $ipdb_china_admin_code
    • $ipdb_idd_code
    • $ipdb_country_code
    • $ipdb_continent_code
    • $ipdb_idc
    • $ipdb_base_station
    • $ipdb_country_code3
    • $ipdb_european_union
    • $ipdb_currency_code
    • $ipdb_currency_name
    • $ipdb_anycast
    • $ipdb_raw
  • TODO
  • Author
  • Copyright and License
  • See Also

Status

The module is currently in active development.

Back to TOC

Install

# install json-c lib
# centos
yum install json-c-devel -y
#or mac OSX
brew install json-c

configure --prefix=/usr/local/nginx --add-module=./github.com/vislee/ngx_http_ipdb_module
# or dynamic compile
configure --prefix=/usr/local/nginx --add-dynamic-module=./github.com/vislee/ngx_http_ipdb_module --with-compat

The following information is success:

checking for json-c library ... found

+ ngx_http_ipdb_module was configured

Back to TOC

Example Configuration


# load_module ./modules/ngx_http_ipdb_module.so;

http {
    include       mime.types;
    default_type  application/octet-stream;

    ......

    ipdb /tmp/nginx/conf/ipiptest.ipdb;
    ipdb_language CN;
    ipdb_proxy 127.0.0.1;
    ipdb_proxy_recursive on;

    server {
        listen       8090;
        server_name  localhost;

        ......

        location / {
            # ipdb_specifies_addr $http_addr;
            # ipdb_language EN;

            return 200 "country_name:$ipdb_country_name, raw_info:$ipdb_raw";
        }
    }
}

Back to TOC

TODO

  • add variable

Back to TOC

Directives

ipdb

syntax: ipdb file;

default: -

context: http

Specifies a database.

ipdb_language

syntax: ipdb_language EN|CN;

default: EN

context: http,server,location

set variable language.

ipdb_proxy

syntax: ipdb_proxy address|CIDR;

default: -

context: http

Defines trusted addresses. Just like geoip_proxy.

ipdb_proxy_recursive

syntax: ipdb_proxy_recursive on|off;

default: off

context: http

Is recursive search. Just like geoip_proxy_recursive

ipdb_specifies_addr

syntax: ipdb_specifies_addr address;

default: -

context: http,server,location

Specifies the address. The address can contain text, variables.

Back to TOC

Variable

ipdb_country_name

$ipdb_country_name - country name, for example, "中国", "China"

ipdb_region_name

$ipdb_region_name - country region name, for example, "内蒙古","Nei Mongol", "北京", "Beijing"

ipdb_city_name

$ipdb_city_name - city name, for example, "呼和浩特", "Hohhot", "北京", "Beijing"

ipdb_owner_domain

ipdb_isp_domain

$ipdb_isp_domain - ISP name, for example, "电信", "ChinaTelecom"

ipdb_latitude

ipdb_longitude

ipdb_timezone

ipdb_utc_offset

ipdb_china_admin_code

ipdb_idd_code

ipdb_country_code

ipdb_continent_code

ipdb_idc

ipdb_base_station

ipdb_country_code3

ipdb_european_union

ipdb_currency_code

ipdb_currency_name

ipdb_anycast

ipdb_raw

$ipdb_raw - raw info, for example, "中国\t内蒙古\t呼和浩特","China\tNei Mongol\tHohhot"

NOTE: If you need to get multiple variables, use this $ipdb_raw.

Back to TOC

Author

wenqiang li(vislee)

Back to TOC

Copyright and License

This module is licensed under the GPL license.

Copyright (C) 2018-2019, by vislee.

All rights reserved.

Back to TOC

See Also