Files
routewatch/pkg/asinfo/doc.go
T
sneak ca68b8f605
check / check (push) Canceled after 0s
Make the home page's AS name search work (closes #151)
The AS Name Search card on the home page said the search was coming
soon. It now asks the new GET /api/v1/search/as?q=<text>, which
searches the AS list built into asinfo, and lists the matches as links
to their AS pages. An empty q answers 400. asinfo.Search now ignores
case and returns its matches in AS number order.

A match can be an AS that the database does not hold yet. Its AS page
and /api/v1/as/{asn} now answer with its handle and description from
asinfo and no prefixes, instead of 404. Empty prefix lists in that JSON
answer are [] rather than null.

Model: opus-5-5
2026-10-26 20:39:30 +00:00

30 lines
910 B
Go

/*
Package asinfo provides information about Autonomous Systems (AS).
The package embeds a comprehensive database of AS numbers, handles, and descriptions
sourced from https://github.com/ipverse/asn-info. The data is embedded at compile
time and provides fast, offline lookups.
Basic usage:
// Get information about an AS
info, ok := asinfo.Get(15169)
if ok {
fmt.Printf("AS%d: %s - %s\n", info.ASN, info.Handle, info.Description)
}
// Get just the description
desc := asinfo.GetDescription(15169) // "Google LLC"
// Search the handles and descriptions, ignoring case; the matches come
// in AS number order
results := asinfo.Search("university")
for _, as := range results {
fmt.Printf("AS%d: %s\n", as.ASN, as.Description)
}
The data is loaded lazily on first access and cached in memory for the lifetime
of the program. All getter methods are safe for concurrent use.
*/
package asinfo