Skip to content

greplist/searchinform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

searchinform

Task

Необходимо написать сервер, который по IP подключившегося клиента возвращал название страны клиента. Сервер получать данные должен с помощью одного из следующих сервисов: http:https://freegeoip.net/, http:https://geoip.nekudo.com (список можно дополнять) Данные по IP адресам должны кэшироваться в локальной БД, должен быть установлен порог «валидности» IP адреса в кэше. Необходимо учесть, что провайдеры имеют ограничение на количество запросов, и при выборе внешнего провайдера нужно проверять сколько запросов к нему было в течении 1 минуты и переключаться на другой Настройки параметров кэша и список провайдеров необходимо хранить/задавать в конфигурационном файле.

Golang

We use Golang 1.9 for this project, so install this version of Go.

Start with Project

Clone git repository:

mkdir -p $GOPATH/src/github.com/
cd $GOPATH/src/github.com/
git clone https://github.com/greplist/searchinform.git
cd searchinform/

Run tests:

make tests

Build and Run server

For run server, you may run:

make

Now server is running with default config, is listenning port 8080, so you may test it:

curl 127.0.0.1:8080/api/country?host=google.com
curl 127.0.0.1:8080/api/country?host=google.com
curl 127.0.0.1:8080/api/country?host=192.140.253.113

After 5 minutes, you may run:

curl 127.0.0.1:8080/api/country?host=google.com

And server returns country for this host from real server, not from cache (cache TTL test)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published