diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e78b06 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# geoip2 + +Получение данных с сервиса maxmind.com. Изначально пакет пишется для сервиса https://git.kor-elf.net/kor-elf-shield/kor-elf-shield. + +## Установка +```sh +go get git.kor-elf.net/kor-elf-shield/geoip2 +``` + +## Примеры использования +```go +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](https://git.kor-elf.net/kor-elf-shield/geoip2/src/branch/main/LICENSE) \ No newline at end of file