geoip2

Получение данных с сервиса maxmind.com. Изначально пакет пишется для сервиса https://git.kor-elf.net/kor-elf-shield/kor-elf-shield.

Установка

go get git.kor-elf.net/kor-elf-shield/geoip2

Примеры использования

package main

import (
	"fmt"
	"net/netip"

	"git.kor-elf.net/kor-elf-shield/geoip2/service/maxmind/mmdb"
)

type Logger struct{}

func (l *Logger) Error(err error) {
	fmt.Println(err)
}

func main() {
	// Для получения username и password ознакомьтесь тут: https://support.maxmind.com/knowledge-base/articles/create-a-maxmind-account
	username := "username"
	password := "password"
	download, err := mmdb.NewDownload(mmdb.DownloadURLCityLite, username, password, mmdb.DefaultDownloadConfig())
	if err != nil {
		panic(err)
	}

	city := mmdb.NewCity(download, &Logger{}, "tmp", mmdb.LanguageRussian)
	defer func() {
		_ = city.Close()
	}()

	/*
	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()
	
	// Если хотите обновить данные
	if err := city.Refresh(ctx); err != nil {
		panic(err)
	}
	 */

	// Вместо 127.0.0.1 укажите интересующиеся IP адрес
	ip, err := netip.ParseAddr("127.0.0.1")
	if err != nil {
		panic(err)
	}
	info, err := city.Info(ip)
	if err != nil {
		panic(err)
	}
	fmt.Println(info.ToString())
}

Лицензия

MIT

S
Description
Получение данных с сервиса maxmind.com. Изначально пакет пишется для сервиса https://git.kor-elf.net/kor-elf-shield/kor-elf-shield.
Readme MIT 51 KiB
v0.1.2 Latest
2026-04-11 17:25:54 +05:00
Languages
Go 100%