基於OpenResty ,MaxMind GeoIP數據庫和從bgp.he.net生成的ASN數據庫,因為沒有經緯度的需求所以沒有顯示。下文有源代碼的鏈接,如果需要可以自行修改加上經緯度或者將輸出變為JSON等。

使用方法

查詢當前IP地理位置

$ curl https://ipip.tk/
x.x.x.x
Country, City
ASN number

查詢當前IP

$ curl https://ipip.tk/ip
x.x.x.x

查詢指定IP的地理位置

$ curl https://ipip.tk/74.125.203.199
74.125.203.199
United States, Mountain View
AS15169 Google Inc.

查詢域名的地理位置

$ curl https://ipip.tk/www.google.com.hk
74.125.203.199
United States, Mountain View
AS15169 Google Inc.

查詢域名的IP

$ curl https://ipip.tk/www.google.com.hk/ip
74.125.203.199

查詢域名的IP和CNAME(如果存在)

$ curl https://ipip.tm/www.google.com.hk/dns
www-wide.l.google.com 74.125.203.199

源代碼

在這裡https://gist.github.com/fffonion/44e5fb59e2a8f0efba5c1965c6043584

需要ngx_http_geoip_module, echo-nginx-module, lua-nginx-module,安裝libgeoip,並將maxmind的舊版geoip數據庫放在/usr/share/GeoIP

通過bgp.he.net生成ASN數據庫

This service is based on OpenResty, MaxMind GeoIP database and ASN database generated by bgp.he.net. There’s no lat/lng since I don’t need it. Source code is attached below. You can modify it to display lat/lng or output JSON.

Usage

Query current IP geo location

$ curl https://ipip.tk/
x.x.x.x
Country, City
ASN number

Query current IP

$ curl https://ipip.tk/ip
x.x.x.x

Query given IP geo location

$ curl https://ipip.tk/74.125.203.199
74.125.203.199
United States, Mountain View
AS15169 Google Inc.

Query given domain name geo location

$ curl https://ipip.tk/www.google.com.hk
74.125.203.199
United States, Mountain View
AS15169 Google Inc.

Query given domain name IP

$ curl https://ipip.tk/www.google.com.hk/ip
74.125.203.199

Query given domain name IP and CNAME (if exists)

$ curl https://ipip.tm/www.google.com.hk/dns
www-wide.l.google.com 74.125.203.199

Installation

Source code can be viewed here: https://gist.github.com/fffonion/44e5fb59e2a8f0efba5c1965c6043584

nginx with ngx_http_geoip_module, echo-nginx-module, lua-nginx-module is required; libgeoip needs to be installed and geoip database should be placed under /usr/share/GeoIP.

Generate ASN database from bgp.he.net