Skip to content

Geonet

Everyone

The Geonet API lets you perform DNS lookups and pings from different places around the world. It can be helpful to see if a website is doing location-based loadbalancing (ex. clients in EU get routed to a different IP than clients in the US). Or get the latency to an IP to debug potential connection issues. Shodan also offers 2 command-line tools that use the Geonet API: geodns and geoping.

Example: geoping

$ curl https://geonet.shodan.io/api/geoping/74.6.231.20 | jq
[
{
"ip": "74.6.231.20",
"is_alive": true,
"min_rtt": 33.433,
"avg_rtt": 33.664,
"max_rtt": 34.06,
"rtts": [
34.059762954711914,
33.43319892883301,
33.50019454956055
],
"packets_sent": 3,
"packets_received": 3,
"packet_loss": 0,
"from_loc": {
"city": "Clifton",
"country": "US",
"latlon": "40.8344,-74.1377"
}
},
{
"ip": "74.6.231.20",
"is_alive": true,
"min_rtt": 119.83,
"avg_rtt": 120.107,
"max_rtt": 120.523,
"rtts": [
120.52345275878906,
119.83036994934082,
119.96579170227051
],
"packets_sent": 3,
"packets_received": 3,
"packet_loss": 0,
"from_loc": {
"city": "London",
"country": "GB",
"latlon": "51.5085,-0.1257"
}
},
{
"ip": "74.6.231.20",
"is_alive": true,
"min_rtt": 122.562,
"avg_rtt": 122.917,
"max_rtt": 123.584,
"rtts": [
123.58355522155762,
122.6050853729248,
122.56169319152832
],
"packets_sent": 3,
"packets_received": 3,
"packet_loss": 0,
"from_loc": {
"city": "Amsterdam",
"country": "NL",
"latlon": "52.3740,4.8897"
}
},
{
"ip": "74.6.231.20",
"is_alive": true,
"min_rtt": 123.223,
"avg_rtt": 123.783,
"max_rtt": 124.584,
"rtts": [
124.58372116088867,
123.22330474853516,
123.54326248168945
],
"packets_sent": 3,
"packets_received": 3,
"packet_loss": 0,
"from_loc": {
"city": "Frankfurt am Main",
"country": "DE",
"latlon": "50.1155,8.6842"
}
},
{
"ip": "74.6.231.20",
"is_alive": true,
"min_rtt": 207.881,
"avg_rtt": 208.149,
"max_rtt": 208.586,
"rtts": [
208.5857391357422,
207.98015594482422,
207.88145065307617
],
"packets_sent": 3,
"packets_received": 3,
"packet_loss": 0,
"from_loc": {
"city": "Singapore",
"country": "SG",
"latlon": "1.3215,103.6957"
}
}
]

Example: geodns

$ curl https://geonet.shodan.io/api/geodns/yahoo.com | jq
[
{
"answers": [
{
"type": "A",
"value": "74.6.231.20"
},
{
"type": "A",
"value": "74.6.143.25"
},
{
"type": "A",
"value": "98.137.11.164"
},
{
"type": "A",
"value": "74.6.143.26"
},
{
"type": "A",
"value": "98.137.11.163"
},
{
"type": "A",
"value": "74.6.231.21"
}
],
"from_loc": {
"city": "Clifton",
"country": "US",
"latlon": "40.8344,-74.1377"
}
},
{
"answers": [
{
"type": "A",
"value": "98.137.11.163"
},
{
"type": "A",
"value": "74.6.143.26"
},
{
"type": "A",
"value": "74.6.231.20"
},
{
"type": "A",
"value": "74.6.231.21"
},
{
"type": "A",
"value": "98.137.11.164"
},
{
"type": "A",
"value": "74.6.143.25"
}
],
"from_loc": {
"city": "London",
"country": "GB",
"latlon": "51.5085,-0.1257"
}
},
{
"answers": [
{
"type": "A",
"value": "98.137.11.164"
},
{
"type": "A",
"value": "98.137.11.163"
},
{
"type": "A",
"value": "74.6.231.20"
},
{
"type": "A",
"value": "74.6.143.26"
},
{
"type": "A",
"value": "74.6.231.21"
},
{
"type": "A",
"value": "74.6.143.25"
}
],
"from_loc": {
"city": "Amsterdam",
"country": "NL",
"latlon": "52.3740,4.8897"
}
},
{
"answers": [
{
"type": "A",
"value": "98.137.11.164"
},
{
"type": "A",
"value": "98.137.11.163"
},
{
"type": "A",
"value": "74.6.143.26"
},
{
"type": "A",
"value": "74.6.143.25"
},
{
"type": "A",
"value": "74.6.231.20"
},
{
"type": "A",
"value": "74.6.231.21"
}
],
"from_loc": {
"city": "Frankfurt am Main",
"country": "DE",
"latlon": "50.1155,8.6842"
}
},
{
"answers": [
{
"type": "A",
"value": "74.6.143.25"
},
{
"type": "A",
"value": "74.6.231.21"
},
{
"type": "A",
"value": "74.6.143.26"
},
{
"type": "A",
"value": "98.137.11.164"
},
{
"type": "A",
"value": "98.137.11.163"
},
{
"type": "A",
"value": "74.6.231.20"
}
],
"from_loc": {
"city": "Singapore",
"country": "SG",
"latlon": "1.3215,103.6957"
}
}
]