9992690f8f
* Gopkg.lock: use MK v0.10.3 * ooni: stop using legacy GeoIP database files * Some yak shaving of Makefile 1. remove now broken commands to download deps 2. also define the CXX cross compiler * chore(dep): migrate from dep to go 1.11+ modules See https://blog.callr.tech/migrating-from-dep-to-go-1.11-modules/ I need this to simplify my life in building for Travis. * Introduce build.sh and repair build In going forward, I believe we don't actually need a Makefile but I didn't want to make such a radical change now. * Another strategy wrt gopath * travis: run regress tests on macOS Closes #30
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package geoip
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/alecthomas/kingpin"
|
|
"github.com/apex/log"
|
|
"github.com/ooni/probe-cli/internal/cli/root"
|
|
"github.com/ooni/probe-cli/internal/output"
|
|
"github.com/ooni/probe-cli/utils"
|
|
)
|
|
|
|
func init() {
|
|
cmd := root.Command("geoip", "Perform a geoip lookup")
|
|
|
|
shouldUpdate := cmd.Flag("update", "Update the geoip database").Bool()
|
|
|
|
cmd.Action(func(_ *kingpin.ParseContext) error {
|
|
output.SectionTitle("GeoIP lookup")
|
|
ctx, err := root.Init()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if err = ctx.MaybeDownloadDataFiles(); err != nil {
|
|
log.WithError(err).Error("failed to download data files")
|
|
}
|
|
|
|
geoipPath := utils.GeoIPDir(ctx.Home)
|
|
if *shouldUpdate {
|
|
utils.DownloadGeoIPDatabaseFiles(geoipPath)
|
|
}
|
|
|
|
loc, err := utils.GeoIPLookup(geoipPath)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log.WithFields(log.Fields{
|
|
"type": "table",
|
|
"asn": fmt.Sprintf("AS%d", loc.ASN),
|
|
"network_name": loc.NetworkName,
|
|
"country_code": loc.CountryCode,
|
|
"ip": loc.IP,
|
|
}).Info("Looked up your location")
|
|
|
|
return nil
|
|
})
|
|
}
|