Skip to main content

Ignoring bogon addresses

Some IP addresses and ranges are set aside for special use, or not yet allocated.

These are called “bogon” IP addresses.

Bogons should never appear on the public internet. And because bogons aren't allocated to any server or network, they don't have any geolocation or other data associated with them.

Our API will return a field privacy.is_bogon to indicate these IP addresses, as well as null for most other fields.

However, looking up a bogon address will still count as an API request towards your quota. You therefore might want to ignore bogon addresses in your application.

How to ignore bogons in code

To avoid spending your API quota on bogon addresses, you can pre-check if an IP is in a bogon range before calling the API.

For example, one simple approach in JavaScript is to use the is-in-subnet package and a list of bogon networks.

Install:

npm install is-in-subnet

Example:

import isInSubnet from 'is-in-subnet';

export const BOGON_NETWORKS = [
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"224.0.0.0/4",
"240.0.0.0/4",
"255.255.255.255/32",
"::/128",
"::1/128",
"::ffff:0:0/96",
"::/96",
"100::/64",
"2001:10::/28",
"2001:db8::/32",
"fc00::/7",
"fe80::/10",
"fec0::/10",
"ff00::/8",
"2002::/24",
"2002:a00::/24",
"2002:7f00::/24",
"2002:a9fe::/32",
"2002:ac10::/28",
"2002:c000::/40",
"2002:c000:200::/40",
"2002:c0a8::/32",
"2002:c612::/31",
"2002:c633:6400::/40",
"2002:cb00:7100::/40",
"2002:e000::/20",
"2002:f000::/20",
"2002:ffff:ffff::/48",
"2001::/40",
"2001:0:a00::/40",
"2001:0:7f00::/40",
"2001:0:a9fe::/48",
"2001:0:ac10::/44",
"2001:0:c000::/56",
"2001:0:c000:200::/56",
"2001:0:c0a8::/48",
"2001:0:c612::/47",
"2001:0:c633:6400::/56",
"2001:0:cb00:7100::/56",
"2001:0:e000::/36",
"2001:0:f000::/36",
"2001:0:ffff:ffff::/64"
] as const;

export function isBogon(ip) {
return BOGON_NETWORKS.some((cidr) => isInSubnet(ip, cidr));
}

Using in your code:

import isBogon from './isBogon';

export function lookup(ip) {
if (isBogon(ip)) {
return;
}

/* Continue with IPLocate API call ... */
}

List of bogon IP addresses

See our full list of bogon addresses.