The Internet looks different depending on where you live. The Chinese firewall is the classic example but there are lots of other instances as well. Many websites block traffic from countries in which they will never have customers. Data privacy concerns can require organizations to serve user requests from nearby locations. And companies are deploying applications to the edge for an improved low latency user experience. This is one of the reasons that our crawling infrastructure is distributed globally; it makes sure the data isn't regionally biased.

Over the past few years, we've increasingly seen websites behave differently depending on where Shodan connects from (Shodan scans a few hundred million hostnames each month) and internally we've had some tooling to help debug location-based issues. We're now making some of that available to you as a free API and accompanying CLI tools:

GeoNet API: https://geonet.shodan.io

The API currently provides 2 main commands:

  • geodns
  • geoping

The geodns method will perform a DNS lookup and geoping does an ICMP ping request. Both of those methods are run from multiple locations around the world and the API aggregates the results into a single API response to you.

Alongside the API, we're releasing accompanying CLI tools if you want to use the geoping and geodns methods directly from your terminal without having to write any code. We provide pre-built releases for Linux. For example, this is how the geoping command works on the CLI:

The API is free to use but subject to a rate limit of 1 request per second. Talk to us if you need to do a higher volume of requests.