{"id":20457657,"url":"https://github.com/readytalk/dns-geo-analyzer","last_synced_at":"2026-05-31T22:31:14.406Z","repository":{"id":66780212,"uuid":"129658286","full_name":"ReadyTalk/dns-geo-analyzer","owner":"ReadyTalk","description":"A repo for collecting DNS Geo-Resolution Data","archived":false,"fork":false,"pushed_at":"2018-04-19T23:02:05.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-05T10:47:51.091Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReadyTalk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-15T23:00:57.000Z","updated_at":"2020-01-16T00:28:34.000Z","dependencies_parsed_at":"2023-06-03T14:45:59.281Z","dependency_job_id":null,"html_url":"https://github.com/ReadyTalk/dns-geo-analyzer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ReadyTalk/dns-geo-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReadyTalk%2Fdns-geo-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReadyTalk%2Fdns-geo-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReadyTalk%2Fdns-geo-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReadyTalk%2Fdns-geo-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReadyTalk","download_url":"https://codeload.github.com/ReadyTalk/dns-geo-analyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReadyTalk%2Fdns-geo-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33752286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T12:08:23.711Z","updated_at":"2026-05-31T22:31:14.391Z","avatar_url":"https://github.com/ReadyTalk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DNS Resolver Testing\n\nThe intent of this script and docker file is to test geo-location of DNS resolution.  Many providers do this in different ways, and we need to be able to test that data.\n\n# Usage\n\n## Local\n\nSet your ENV.  You can provide a `\u003cenvironment\u003e.env` file and pass that to the run_test.sh script:\n\n```\n./run_test.sh example\n```\n\nThis will run the docker container, but mount the script to it from local for testing.\n\n## Docker\n\nYou can run this anywhere using docker.  Just pass an env file like the example.\n\n```\ndocker run -itd --name resolver --env-file example.env readytalk/dns-geo-analyzer:latest\n```\n\nNote the nameserver and sites have the format \u003cshortname\u003e,\u003cdns/ip\u003e.  This is to avoid having dots in the metric names for ES\n\n## Kubernetes \u0026 Prometheus\n\nThis is setup to also run as a prometheus endpoint.  There is an example daemonset so that you can run it on as many nodes as possible.  Enable the PROMETHEUS_PORT to start a server on that port.  The annotation on the daemonset coupled with the port specification will allow prometheus to scan it.  See the code or the endpoint for details about the metrics available.\n\n## Options\n\n### IP Geolocation\n\nYou can enable this by setting the IPSTACK_API_KEY env variable.  This will use your api key to lookup geolocation data.\n\nWARNING: This will use up your API calls.  Don't make too many like I did an destroy your API limit in 2 days.\n\n### Elasticsearch\n\nSet the ES_ENDPOINT and ES_INDEX to send these json objects to elasticsearch.  Currently uses ES version 5.0, but could easily work with 6.0 by modifying the requirements.txt\n\n### REQUEST_INTERVAL\n\nThis will control how often the server makes requests and queries.  It is number of seconds.\n\n### DNS_TIMEOUT\n\nThe nubmer of seconds that a DNS query will wait to timeout\n\n## NOTES\n\nThe format of the ENV is very specific.  The short names are used so that we don't have dots in the keys, which makes the data ugly in ES\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freadytalk%2Fdns-geo-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freadytalk%2Fdns-geo-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freadytalk%2Fdns-geo-analyzer/lists"}