GeoJS: Multiple IPs & ChatOps

In April this year I launched GeoJS, my geolocation lookup API. In just six months it has managed to get 100k+ hits a week, not bad for something I've never advertised. Today I'm annoucing two new features for GeoJS: ChatOps integration and support for multi-IP lookups.

ChatOps Integration

GeoJS Slack App

I'm excited to announce that GeoJS now integrates directly into Slack, HipChat and Twist, allowing you to lookup IPs as part of your ChatOps workflow, through slash commands.

Installation is simple via the Slack, Twist and HipChat marketplaces, just follow the links to install it on your selected platform and you're good to go. No authentication or payment needed, like the rest of GeoJS its free to use.

Once installed just feed the /geojs slash command an IP and your response will be given inline. Checkout the Slack example above or the HipChat one below.

GeoJS HipChat App

Documentation for the ChatOps integration is available on the GeoJS website.

Multi-IP Lookups

Since I started GeoJS you've been able to lookup specific IP addresses, just restricted to one at a time. This made looking up multiple IPs a painful process. Those days are now gone! GeoJS now supports multi-IP lookups by passing the Geo and Country endpoints a list in the IP argument. Supporting JSON, JSONP and plain text formats you can lookup as many as you want. Here's an example response from the Geo endpoint:

geoip([{
    "longitude": "-97.8220",
    "latitude": "37.7510",
    "timezone": "",
    "organization": "AS15169 Google Inc.",
    "country_code": "US",
    "ip": "8.8.8.8",
    "area_code": "0",
    "continent_code": "NA",
    "country": "United States",
    "country_code3": "USA"
}, {
    "longitude": "-122.3942",
    "city": "San Francisco",
    "timezone": "America\/Los_Angeles",
    "region": "California",
    "organization": "AS14907 Wikimedia Foundation, Inc.",
    "country_code": "US",
    "ip": "198.35.26.96",
    "latitude": "37.7898",
    "area_code": "0",
    "continent_code": "NA",
    "country": "United States",
    "country_code3": "USA"
}])

All that from curl https://get.geojs.io/v1/ip/geo.js?ip=8.8.8.8,198.35.26.96. Like the rest of the service there are no rate limits on these endpoints.


Thats it for this round. I'm hoping to have a web interface and Electron app published in the next few months so keep your eyes peeled! Switching over to GeoLite2 is also on the roadmap however some packaging is required to get support into Nginx.

James Loh

I'm a Sysadmin for a web solutions company deploying clouds across the globe. I learn new things every day.

Australia @itsjloh jloh jloh