{"id":16649979,"url":"https://github.com/datamine/ip-mapper","last_synced_at":"2025-12-28T07:01:44.096Z","repository":{"id":86599551,"uuid":"41873606","full_name":"Datamine/IP-Mapper","owner":"Datamine","description":"Maps Frequency Counts of IPs onto a World Map","archived":false,"fork":false,"pushed_at":"2015-09-04T16:33:18.000Z","size":8264,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-19T06:46:28.305Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Datamine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-03T17:26:21.000Z","updated_at":"2018-12-03T21:44:48.000Z","dependencies_parsed_at":"2023-03-13T19:57:16.214Z","dependency_job_id":null,"html_url":"https://github.com/Datamine/IP-Mapper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Datamine%2FIP-Mapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Datamine%2FIP-Mapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Datamine%2FIP-Mapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Datamine%2FIP-Mapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Datamine","download_url":"https://codeload.github.com/Datamine/IP-Mapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243224600,"owners_count":20256734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-12T09:14:36.035Z","updated_at":"2025-12-28T07:01:37.059Z","avatar_url":"https://github.com/Datamine.png","language":"Python","readme":"# IP-Mapper\n\nThis is a tool for mapping frequency counts of IPs onto a world map,\ndisplaying proportionally-sized circles to represent them. Builds open my\nprevious [Travelmap](https://github.com/Datamine/Travelmap) project.\n\n### Usage:\n\n`python ip-mapper.py \u003cyour-input-file-here\u003e`\n\nInput files should be formatted as a frequency count (integer) followed by a space, an IPv4 address, and a newline. An example is included: `example-input.txt`.\n(The IPs listed therein have been [randomly generated](http://sqa.fyicenter.com/Online_Test_Tools/Test_IP_Address_Generator.php).)\n\nThere are two output maps:   \n\n**1.** A black-and-white one, which displays all datapoints in a high-contrast red, so they can be easily geographically identified. [Example](https://raw.githubusercontent.com/Datamine/IP-Mapper/2bd8aa6f9a7826f322133aef4cd27d453e96fb7d/BW_1441336647.PNG).  \n\n**2.** A colored one, which displays transparent datapoints, so it is easier to gauge the geographical frequency of IPs over small areas. [Example](https://raw.githubusercontent.com/Datamine/IP-Mapper/2bd8aa6f9a7826f322133aef4cd27d453e96fb7d/Color_1441336647.PNG).  \n\n### Required Libraries:\n* python-geoip (http://pythonhosted.org/python-geoip/)\n* python-geoip-geolite2\n* python-pyproj (https://pypi.python.org/pypi/pyproj?), Version 1.9.4\n* Python Imaging Library (http://effbot.org/imagingbook/pil-index.htm), Version 1.1.7, Pillow Version 2.3.0\n\nBeyond that, the script queries an online db to geolocate the IP, so an internet connection is required for it to run.\nNote that the accuracy of that database is [apparently](https://www.maxmind.com/en/geoip2-city-database-accuracy?country=United+States\u0026resolution=250) 72% within a distance of 250km for the US,\nthough it may vary significantly among other countries (example: for Germany, that accuracy drops to 44%, with 54% of queries going unresolved).\n\n### Acknowledgements\n\nThis script comes with two Robinson projection maps based on open-source images:\n* Robinson_BW.png: Courtesy of the [University of Alabama Cartographic Research Lab](http://alabamamaps.ua.edu/about.html)\n* Robinson_Color.png: from [Wikipedia](http://upload.wikimedia.org/wikipedia/commons/9/96/Robinson_projection_SW.jpg) by [User:Strebe](http://commons.wikimedia.org/wiki/User:Strebe).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatamine%2Fip-mapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatamine%2Fip-mapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatamine%2Fip-mapper/lists"}