Who owns an IP address? Under registry policy, no one outright: a regional internet registry registers each block of addresses to a holder, usually a network operator, for its exclusive use, and the holder can reassign part of it to a customer. One lookup can therefore name several organizations: the one the address is registered to, the network that announces it, and the team that takes abuse reports.
On October 22, 2026, example.com resolved to 104.20.23.154. IANA keeps example.com for documentation, yet every record on that address names Cloudflare: the company is Cloudflare, Inc., the announcing network is AS13335, and abuse reports go to Cloudflare's abuse desk. Here the records agree with each other and disagree with the domain; on many addresses, they disagree with each other too.
TL;DR
Who owns an IP address depends on what you need to know. The company field names the organization the address is assigned to, the ASN names the network that announces it, the company's type tells you whether that organization is an ISP, and abuse reports go to the contact on the most specific range.
- A network typed ISP can carry ranges registered to agencies, colleges, banks, and hosting firms, so check the company type on each range.
- An address on a CDN's own network names the CDN provider, not the website's owner; a site that brings its own block, as GitHub does on Fastly, keeps its own name.
- Behind carrier-grade NAT, one public address serves many subscribers, and the provider needs the source port and an accurate timestamp to tell them apart.
Why no one owns an IP address outright
Registries hand out address space for use, and they don't sell it. ARIN's Number Resource Policy Manual says "number resources are not 'sold' under ARIN administration"; they're assigned to an organization for its exclusive use for as long as the registration terms are met.
IANA allocates pools of unallocated addresses to the five regional internet registries: AFRINIC, APNIC, ARIN, LACNIC, and RIPE NCC. Each registry allocates blocks to holders in its region, often internet providers. A holder can then pass addresses on in two ways, which ARIN's policy manual names separately: a reallocation hands a block to another organization to distribute to its own customers, and a reassignment hands it to a customer for that customer's own use. In the ARIN region, every IPv4 reassignment or reallocation of a /29 (eight addresses) or larger has to be registered within seven calendar days, with the customer's name, unless a policy exemption applies.
Blocks also change hands. RIPE NCC's transfer policy lets a holder transfer all or part of a block, permanently or not, and requires the RIPE Database to record it. Renting IPv4 space from a RIPE NCC member is a recognized option too, but it doesn't always leave a record with the tenant's name: under RIPE NCC's IPv4 policy, a member can register its customer assignments one by one or as a single object marked AGGREGATED-BY-LIR.
Routing sits outside the registry system. RFC 7020 puts whether and how addresses are announced to the internet "outside the scope of the Internet Numbers Registry System." Networks announce the blocks they carry through BGP, telling other networks to send traffic for those addresses their way, and that's where the second name on an address comes from.

What an ownership lookup returns
Ownership and abuse contact data are two of the layers of IP intelligence an IP lookup returns. They answer four questions, and each answer can name a different organization.
| Question | Record | What It Names | Fields In IPGeolocation.io's Response |
|---|---|---|---|
| Who announces this address? | ASN organization | The organization registered for the AS number that announces the address | asn.as_number, asn.organization, asn.type |
| Who is it assigned to? | Company | The organization the IP address is assigned to | company.name, company.type, company.domain |
| Is that organization an internet provider? | ISP | The company, when its type is ISP; no registry record is labeled ISP | company.type |
| Who takes abuse reports? | Abuse contact | The contact registered for the range covering the address | abuse.name, abuse.emails, abuse.route |

1. ASN organization: the network that announces it
Every address you can reach on the internet sits inside a block that some network announces. An autonomous system is a connected group of IP prefixes run under a single, clearly defined routing policy, as RFC 1930 defines it, and its autonomous system number (ASN) identifies it in BGP. The number is registered to one organization, which is the ASN organization a lookup returns, even when more than one operator runs the network behind it. The guide to autonomous system numbers covers how they're assigned.
The ASN organization tells you whose network carries the traffic, and its type often tells you more than its name, because a login from a hosting network and one from a home broadband network call for different handling. It doesn't tell you who the address is registered to. RFC 1930 says a site with one provider and one prefix doesn't need its own AS: "the prefix should be placed in an AS of the provider." Many business customers work this way, so their addresses carry their provider's ASN.
2. Company: the organization it's assigned to
The registry's answer to "who is this registered to?" is the most specific record that covers the address, and that record often names a customer rather than the network.
GitHub publishes 185.199.108.153 as one of four addresses for Pages sites, and the RIPE NCC database registers the block around it, 185.199.108.0/22, to GitHub, Inc. An IPGeolocation.io lookup on October 22, 2026 returned this, trimmed to the ownership fields:
{
"ip": "185.199.108.153",
"network": {
"route": "185.199.108.0/24"
},
"asn": {
"as_number": "AS54113",
"organization": "Fastly, Inc.",
"type": "HOSTING"
},
"company": {
"name": "GitHub, Inc.",
"type": "BUSINESS",
"domain": "github.com"
},
"abuse": {
"route": "185.199.108.0/22",
"name": "GitHub Abuse",
"emails": ["abuse@github.com"]
}
}
The company field and the registry both name GitHub. The ASN names Fastly, whose network announces the /24 that holds the address. The abuse contact follows the registry record: reports go to GitHub, not to Fastly.
Sheharyar Malik, a senior software engineer at IPGeolocation.io and the author of this guide, points out that even a small downstream customer can have its own registry record without operating an ASN or holding a direct allocation, because ARIN requires qualifying reassignments to be registered. Philadelphia College of Osteopathic Medicine is one. ARIN records 63.160.95.0 to 63.160.95.63 as an assignment to the college, registered on September 29, 2021, inside a block allocated to Cogent. Cogent's AS174 announces the range, and the IPGeolocation.io lookup returns the college as the company, typed EDUCATION.
In IPGeolocation.io's lookups, the company is the organization the IP address is assigned to, returned with its type and domain. Don't read the postal address in a registry record as the IP's location: ARIN notes that it may not reflect the resource's exact physical location, because no policy requires it to. The post on how location data is built covers where location comes from instead.
3. ISP: a company type, not a separate record
No registry record is labeled ISP. In IPGeolocation.io's data, the ISP is the company whose company.type is ISP, so the field answers one question: is the organization this address is assigned to an internet provider? When the type is HOSTING, BUSINESS, EDUCATION, or GOVERNMENT, it isn't.
That's a different question from who connects the address to the internet. The college reaches the internet through Cogent, its upstream provider, and the ASN shows that; the company field still names the college, typed EDUCATION. A tool that labels Cogent the college's ISP is answering the network question.
The trap is reading the network's type as the answer for every range it carries, since asn.type describes the whole network. Sheharyar's rule: an ASN typed ISP tells you about a range only when the network uses its routes for its own customers, and once ranges are reassigned or leased out, you check the company type on each one. Cogent's AS174 is typed ISP, and on October 22, 2026, IPGeolocation.io lookups of an address in each of these registered ranges all returned AS174:
| Registered Range | Company (Company.name) |
Company.type |
Registry Record |
|---|---|---|---|
| 38.0.0.0/8 | Cogent Communications, LLC | ISP | ARIN direct allocation, 1991 |
| 167.141.0.0/16 | Illinois Criminal Justice Information Authority | GOVERNMENT | ARIN direct allocation to the agency, 1993 |
| 63.160.95.0/26 | Philadelphia College of Osteopathic Medicine | EDUCATION | ARIN assignment, 2021 |
| 208.11.8.0/21 | Branch Banking and Trust Company | BUSINESS | ARIN assignment, 2005 |
| 208.29.138.0/23 | CHAMBERLAIN GROUP INC | BUSINESS | ARIN assignment, 2015 |
| 193.235.207.0/24 | EDIS GmbH | HOSTING | RIPE NCC assigned PA, 2018 |
| 66.243.224.0/24 | FAIRPOINT COMMUNICATIONS, INC. | ISP | ARIN allocation to FairPoint, 2007 |
A state agency, a college, a bank, a manufacturer, a hosting company, and a second ISP all reach the internet over one ISP-typed network, and the company type on each range is what separates them.

For home and mobile connections, the company usually is the ISP, and it's also the network and the abuse contact. ARIN's policy even lets a provider put its own name on a residential customer's record, with "Private Residence" as the street address, as long as accurate upstream abuse and technical contacts stay visible. A separate guide covers how an ISP differs from an ASN.
4. Abuse contact: who takes the report
Abuse contact data is the contact a network operator registers with its regional internet registry for reports about abuse from its address ranges. Registries require it and check it: RIPE NCC validates every abuse mailbox at least once a year under RIPE-705, and APNIC validates its abuse contacts every six months.
Which contact you get depends on the record. GitHub's block carries GitHub's own abuse team, and the college's assignment carries the college's own administrative contact. Under ARIN policy, a provider's reassignment record includes contact details only when the customer asks for them or the block will be announced outside the provider's network, so many small reassignments leave reports with the provider.
Each contact also comes with a route, the range it answers for, so one report can cover the neighboring addresses an attack rotates through. That range can differ from the BGP route: for 104.20.23.154, Cloudflare announces 104.20.16.0/20, while its abuse contact covers 104.16.0.0/12.
Why the names disagree
The names disagree when a holder passes addresses to someone else, when another network carries a holder's block, or when an address serves a website that belongs to someone else. Sheharyar lists five reasons a company field can look wrong: a reassignment, IPv4 leasing, cloud or CDN infrastructure, a stale record, or a different expectation, where the reader wants one organization's name and the data names another.
| Pattern | Company | ASN Organization | Abuse Contact | What To Read |
|---|---|---|---|---|
| One organization end to end | Same | Same | Same | Any record |
| Reassigned customer (the college) | The customer | The provider | The customer if it registered contacts, otherwise the provider | The company for who it is; the range's contact for reports |
| Holder's block carried by another network (GitHub, the state agency) | The holder | The carrying network | The holder | The company and abuse contact for who to reach; the ASN for who routes it |
| CDN or cloud address (example.com) | The provider | The provider | The provider | The provider, which knows which customer uses the address |
| Leased block | The lessee if the lease is registered, otherwise the original holder | The lessee's ASN or the provider's | Whoever is registered | Registry and routing together |
| Stale record | The previous holder or customer | The network announcing it now | Whoever the record still lists | The record's last-changed date against the routing data |
| Privacy-labeled record | The provider, or an opaque handle | The provider or the host | The provider or an outsourced abuse service | Nothing public names the customer; the provider can |
CDN addresses break the link between a domain and an address, as the example.com lookup showed: the site's owner appears in none of the IP records, and the CDN provider is the one to contact. If a CDN or cloud address turns up in your own logs, check first that it isn't your own proxy (step 1 of the how-to), then whether security data flags it as a privacy relay's exit.

Leased blocks are the hardest to read. Sheharyar sorts them into three cases by what the registry and routing data show:
- A registered lease or reassignment: the lessee may appear as a downstream customer, and the route comes from the lessee's ASN or the provider's.
- A lease with no public customer record: the original holder stays visible in the registry, while the lessee's ASN may still announce the route.
- A hosted or provider-announced lease: the provider or holder is visible, and the provider's ASN announces the route.
Put the registry and the route side by side to tell them apart. A customer record under the holder's block points to the first case. Only the original holder in the registry, with a different network announcing the route, points to the second. The holder or provider on both sides points to the third.
Some records hide the customer on purpose. One RIPE NCC record checked on October 22, 2026 registers a sub-allocated /24 to the word "Company" followed by a string of characters, lists its contact as "Private Customer" at "Private Residence", and sends abuse reports to an outsourced abuse-handling service. Only the provider can say who uses those addresses.
How to find who owns an IP address
To find an IP address owner yourself, follow the records in five steps.
- Check that the address is public. Private ranges, other bogon addresses, and the shared 100.64.0.0/10 space that RFC 6598 sets aside for carrier-grade NAT have no public owner record. If the address came from your own logs, make sure it's the visitor's real IP address and not your proxy's or CDN's.
- Look up the registry record over RDAP. RDAP returns registration data as structured JSON over HTTPS, where WHOIS returns text over its own protocol and port (ARIN's RDAP page). ICANN Lookup accepts IP networks and ASNs, and ARIN's RDAP service redirects questions about other regions to the registry that holds the record.
- Read the record type. ARIN's type field reads DIRECT ALLOCATION for blocks ARIN issued itself, and ALLOCATION or ASSIGNMENT for blocks that came through an upstream provider; the college's record is an ASSIGNMENT under Cogent's DIRECT ALLOCATION. RIPE NCC uses its own status values, such as the ALLOCATED-ASSIGNED PA on GitHub's block.
- Find the network that announces it. Routing data tells you this, not the registry: ARIN's optional Origin AS field, which can list the networks a block may be announced from, is empty on the college's record. RIPE NCC's RIPEstat shows the announcing ASN for any prefix, and IPGeolocation.io's free IP lookup page shows the ASN together with the route, the company, and the abuse contact.
- Take the abuse contact from the most specific record, the one with the smallest range that covers the address.
With curl and jq installed, this command runs the same RDAP lookup from a terminal and returns the record's name, type, range, registrant, and abuse contact for any address:
curl -sSL --fail https://rdap.arin.net/registry/ip/185.199.108.153 | jq '{
name, type, startAddress, endAddress,
registrant: [.entities[]? | select(.roles | index("registrant"))
| .vcardArray[1][]? | select(.[0] == "fn") | .[3]][0],
abuse: [.. | objects | select((.roles? // []) | index("abuse"))
| .vcardArray[1][]? | select(.[0] == "email") | .[3]] | unique
}'
{
"name": "US-GITHUB-20170413",
"type": "ALLOCATED-ASSIGNED PA",
"startAddress": "185.199.108.0",
"endAddress": "185.199.111.255",
"registrant": "GitHub, Inc.",
"abuse": [
"abuse@github.com"
]
}
The -L flag follows ARIN's redirect to RIPE NCC, which returns GitHub's /22. Without it, curl prints ARIN's own record for 185.0.0.0/8, which names RIPE NCC as the registrant, and it's easy to mistake the registry for the owner.
1. If you have two minutes
With one suspicious address and little time, Sheharyar reads the data in this order:
- The source and the risk. Confirm the address in logs you trust (behind a proxy, the client address your own proxy forwards), then read the threat score and the attacker, proxy, VPN, Tor, and residential proxy flags (
security.*) to see whether this is a credible threat or shared, anonymized infrastructure. The IP threat intelligence guide explains how to read each risk signal. - The network. The AS number, organization, and type, and the route (
asn.*,network.route). - The company. Its name, type, and domain (
company.*), compared with the ASN organization. - Shared infrastructure. The CDN, anycast, and cloud flags and provider names (
network.is_cdn,network.is_anycast,security.is_cloud_provider). A CDN, VPN, or cloud address may stand for many customers rather than one. - The reporting contact. The abuse contact's name, emails, and range (
abuse.*), if the activity warrants a report, instead of assuming the ASN organization or the company handles every incident.
Can you find the person behind an IP address?
Not from public records. ARIN says it "will not collect any personal information for inclusion in its public Whois," and providers can list residential customers under their own name. Carrier-grade NAT puts many subscribers behind one public address, and RFC 6302 spells out what the provider then needs: "In the absence of the source port number and accurate timestamp information, operators deploying any address sharing techniques will not be able to identify unambiguously customers when dealing with abuse or public safety queries." That's why it recommends that servers log the source port and a UTC timestamp accurate to the second. If you run servers, log both now, before you need to file a report.

Matching a session to a subscriber happens inside the provider, through its own processes and legal requests, not through any lookup you can run.
How to report abuse from an IP address
- Find the abuse contact on the most specific record covering the address.
- Send evidence the operator can match: the source IP, the timestamp in UTC to the second, the source port, the destination port and protocol, and the relevant log lines. Those are the fields RFC 6302 recommends servers log, and RIPE NCC asks reporters for "as much detail as possible including the IP address and the time the abuse took place."
- Expect a network team to answer. RIPE NCC reminds reporters that the contact will be an ISP or another network operator, not the abuser.
- Go upstream when the first contact won't help. If the contact belongs to the organization you're reporting, or nobody answers, report to the network that announces the range. Its abuse contact is in its AS number's registry record; for Cogent, that's AS174's RDAP record. The registry can't make an operator reply: "There is nothing we can do if a network operator chooses not to reply," RIPE NCC says.
- Report contacts that bounce to the registry, which validates abuse contacts on a schedule.
IPGeolocation.io's IP Abuse Contact API returns the contact, its emails, and the range it covers for any public IPv4 or IPv6 address.
IP ownership data from IPGeolocation.io
IPGeolocation.io returns geolocation, security, ASN, company, abuse contact, time zone, and user agent data from one IP Geolocation API endpoint, in one JSON response. Its security data scores each address from 0 to 100 and flags VPNs, proxies, residential proxies, Tor, known attackers, bots, spam, cloud addresses, and corporate gateways.
For ownership work, a single call covers it: one request returns the announcing ASN and its type, the registered company and its type, the network route, and the abuse contact with the range it covers. This request asks only for the ownership fields of the college's address:
# Company, network, and abuse contact data need a paid key.
# The key is read from the environment so it never sits in the script.
curl -sS --fail "https://api.ipgeolocation.io/v3/ipgeo?apiKey=${IPGEO_API_KEY}&ip=63.160.95.10&include=abuse&fields=asn.as_number,asn.organization,asn.type,company.name,company.type,network.route,abuse.name,abuse.route"
{
"ip": "63.160.95.10",
"network": {
"route": "63.160.0.0/12"
},
"asn": {
"as_number": "AS174",
"organization": "Cogent Communications, LLC",
"type": "ISP"
},
"company": {
"name": "Philadelphia College of Osteopathic Medicine",
"type": "EDUCATION"
},
"abuse": {
"route": "63.160.95.0/26",
"name": "PCOM-Admin"
}
}
Cogent's network, typed ISP, announces the /12; the company is the college, typed EDUCATION; and the abuse contact covers only the college's /26. The response field references documents every field.
ASN data is rebuilt every day from global BGP routing feeds and all five regional internet registries, and abuse contacts are refreshed daily from the WHOIS and RDAP records operators file with them. The ASN API adds routes, peers, upstreams, downstreams, and the raw WHOIS record for any ASN or IP, and the IP Geolocation API's bulk endpoint takes up to 50,000 addresses per request. For offline work such as enriching logs, the IP to Company, IP to ASN, IP Abuse Contact, IP WHOIS, and ASN WHOIS databases come as downloadable files. Free and paid plans include different data, and the pricing page compares them.
Frequently Asked Questions
Yes, for the organization it's registered to and the network that announces it. A regional internet registry's RDAP or WHOIS service shows the registered holder or customer, and routing data shows the announcing ASN. Neither one shows the person using the address.
Not from public records. Registries publish organizational records, and behind carrier-grade NAT, one public address serves many subscribers. The provider is the one party that can match a session to a subscriber, and RFC 6302 explains that it needs the source port and an accurate timestamp to do it.
No single organization does. IANA allocates pools of addresses to the five regional internet registries (AFRINIC, APNIC, ARIN, LACNIC, and RIPE NCC), which register blocks to holders for their exclusive use. ARIN's policy manual states that number resources are not sold under its administration.
For IP address records, RDAP, the Registration Data Access Protocol, which ICANN describes as a replacement for the WHOIS (port 43) protocol. It returns structured JSON over HTTPS instead of plain text. Registries still run WHOIS alongside it: RIPE NCC's RDAP record for GitHub's Pages block names its port 43 WHOIS server.
Because the address belongs to Cloudflare's network, not to the website's owner. A site behind Cloudflare usually resolves to Cloudflare's own addresses, so the company, the ASN, and the abuse contact all name Cloudflare. On October 22, 2026, example.com resolved to 104.20.23.154, and every record named Cloudflare, Inc.
Only when the company on the address is typed ISP, as it usually is for home and mobile connections. For a business, college, or agency with its own registered range, the company is that organization, and the provider that carries its traffic shows up as the ASN.
Registry records change whenever a block is transferred, reassigned, or updated, and in the ARIN region a reassignment of a /29 or larger has to be published within seven calendar days. Routing can change faster, and IPGeolocation.io rebuilds its ASN data from routing feeds every day.
At the source, yes: registry records are free to query over RDAP or WHOIS. In IPGeolocation.io's API, the Free plan includes 1,000 credits a day and basic ASN data (the AS number, organization, and country), while company, network route, and abuse contact data come with paid plans from $19 a month for 150,000 credits. The pricing page compares the plans.
What to do next
Take one address from your logs and look it up on the free IP lookup page, which opens on GitHub Pages' address and takes any other in its search box. For production, the IP Geolocation API returns the same records in one call, and the pricing page shows which plan includes company, network, and abuse contact data. To try the paid data first, ask the support team about a free trial.







