Give every IP lookup result the same fields (closes #200)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
Every result of /ip/, /ip/{addr} and /api/v1/ip/{ip} now has every
field. A field without a value is null instead of left out, so an
address with no live route has all its route and AS fields set to null.
ptr is an empty list when there are no PTR names.
Two new fields, num_origins and origin_asns, give how many origin ASes
peers carry the netblock with, and which. The routing table's prefix
summary now lists them. asn still names the origin that most peers
carry.
first_seen is null, no longer the zero time, when the database has not
stored the netblock yet.
Model: opus-5-5
This commit was merged in pull request #206.
This commit is contained in:
@@ -141,15 +141,39 @@ one of its peers sends an update.
|
||||
last full clock minute.
|
||||
- `GET /api/v1/ip/{ip}` - Looks up each address. `{ip}` is an IP address, a host
|
||||
name, or a comma-separated list of at most 10 of these. `results` has one
|
||||
entry for each address, with:
|
||||
- `ip` and `ptr`: the address and its PTR names
|
||||
- `netblock` and the fields beside it: the most specific prefix that holds
|
||||
the address, and its origin AS with that AS's WHOIS details. For a prefix
|
||||
with several origin ASes, `asn` is the one that most peers carry.
|
||||
`last_seen` is the time of the prefix's newest kept route.
|
||||
- `blocklists`: the public blocklists the address is on (see Blocklists)
|
||||
entry for each address. Every entry has the same fields:
|
||||
- `ip`: the address
|
||||
- `ptr`: the address's PTR names, or an empty list when it has none
|
||||
- `blocklists`: the public blocklists the address is on (see Blocklists), or
|
||||
an empty list when it is on none
|
||||
|
||||
Every other field is about the address's live route. Each is null when the
|
||||
address has no live route. The fields about the route:
|
||||
- `netblock`: the most specific prefix that holds the address
|
||||
- `mask_length`: the netblock's mask length
|
||||
- `ip_version`: the netblock's IP version, 4 or 6
|
||||
- `num_peers`: the number of peers that carry the netblock
|
||||
- `asn`: the origin AS that the most peers carry the netblock with
|
||||
- `num_origins`: the number of origin ASes that peers carry the netblock
|
||||
with
|
||||
- `origin_asns`: those origin ASes, in AS number order
|
||||
- `first_seen`: when RouteWatch first saw the netblock, or null when the
|
||||
database has not stored the netblock yet
|
||||
- `last_seen`: the time of the netblock's newest kept route, or null when
|
||||
the netblock keeps no route
|
||||
|
||||
The fields about the AS in `asn` come from the database. Each is also null
|
||||
when the database does not have it:
|
||||
- `handle`: the AS's handle
|
||||
- `description`: the AS's description
|
||||
- `as_name`: the AS's name in its WHOIS details
|
||||
- `org_name`: the name of the organisation that holds the AS
|
||||
- `org_id`: the organisation's ID at its registry
|
||||
- `address`: the organisation's postal address
|
||||
- `country_code`: the organisation's country code
|
||||
- `abuse_email`: the address that takes abuse reports for the AS
|
||||
- `rir`: the regional internet registry of the AS
|
||||
|
||||
An address with no live route has a result without the route and AS fields.
|
||||
Of the addresses a host name resolves to, only public ones are looked up. A
|
||||
name with none, such as one that resolves to a private address, is reported
|
||||
as `host name has no public address`, without its addresses. `errors` has
|
||||
@@ -211,10 +235,15 @@ so each answer's policy names a random nonce made for that answer, and the
|
||||
browser applies or runs only the blocks that carry it. The pages therefore use
|
||||
no `style` attributes, which a nonce cannot cover.
|
||||
|
||||
An origin AS of 0 (`origin_asn` in a route, `asn` in an IP lookup, the key `0`
|
||||
in a prefix's `origins`) means the route has no known origin: its AS path ends
|
||||
in an AS set of several members, any of which may have originated it. The pages
|
||||
show such a route as having no known origin.
|
||||
An origin AS of 0 means the route has no known origin. Its AS path ends in an AS
|
||||
set of several members, any of which may have originated it. The 0 appears in
|
||||
these fields:
|
||||
|
||||
- `origin_asn` in a route
|
||||
- `asn` and `origin_asns` in an IP lookup
|
||||
- the key `0` in a prefix's `origins`
|
||||
|
||||
The pages show such a route as having no known origin.
|
||||
|
||||
## Blocklists
|
||||
|
||||
|
||||
Reference in New Issue
Block a user