SkillAgentSearch skills...

Geoinspector

Geoblocking Measurement Toolkit

Install / Use

/learn @censoredplanet/Geoinspector
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GeoInspector

Tests

Are you using GeoInspector? If so, let us know! Shoot us an email at censoredplanet@umich.edu.

GeoInspector is a toolkit for measuring geoblocking or server-side blocking on the DNS, TCP, TLS, and HTTP protocols. GeoInspector performs specialized measurements to endpoints on these protocols to detect when access is blocked by the endpoint due to geoblocking.

For more information, refer to our paper

Installation

Use the Makefile provided in the repository to build the binary for execution.

Configuration

The following flags can be provided for running measurements: | Flag | Default | Function | Example | | ---------------------- | ------------------------ | ------------------------------------------------------ | ------------------------------------------ | | input-url-file | Required | Input list of URLs to test | | | asn-mmdb | Required | Path to Maxmind ASN MMDB | | | input-resolver-file | Required if running DNS module | Input list of resolvers to send queries to | | | input-conn-file | Input list of servers to perform a TCP connection to and send data (required if not running in full mode) | | | | output-dns-file | Stdout | DNS Output File | | | control-dns-file | "" | DNS Control File with trusted domain,ip,asn values to include when a domain has no IPs | | | output-parsed-dns | dns_parsed_output.csv | DNS Parsed output file | | | output-conn-file | stdout | Output File for writing TCP, TLS and HTTP connection responses | | | output-failed-conn-file | failed_conn.csv | Output File for writing domain,ip pairs with failed tcp/tls connections, used to run traceroutes | | | module | full | Module to run (can be dns, tcp or full (DNS + TCP)) | | | num-worker | 100 | Number of vantage points to perform measurements to at any moment | | | num-query-workers | 3 | Number of qeuries to perform to each resolver at any moment | | | num-redirects | 10 | Number of redirects to follow for an HTTP request | | | src-ip | | Source IP address to use (will use default if unspecified) | | | ignore-local-resolvers | False | Does not add local resolvers in measurements when enabled | | |

Usage

Run GeoInspector with a command like:

sudo ./geoinspector --input-url-file examples/test.csv --asn-mmdb GeoLite2-ASN.mmdb --output-dns-file examples/dns_output.json --output-parsed-dns examples/dns_parsed_output.csv --output-conn-file examples/tcp_output.json --output-failed-conn-file examples/tcp_failed.json  --num-workers 1 --num-query-workers 1 --input-resolver-file examples/dns-resolvers.csv

Disclaimer

GeoInspector performs multiple measurements towards endpoints with domains in the payload. Please exercise caution when using GeoInspector to not place you or others at risk of service disruptions, and do not request illegal content. Please refer to our paper for more information.

Citation

If you use the GeoInspector tool or data, please cite the following publication:

@inproceedings{ramesh2023network,<br>
title = {Network Responses to Russia's Invasion of Ukraine in 2022: A Cautionary Tale for Internet Freedom},<br>
author = {Ramesh, Reethika and Sundara Raman, Ram and Virkud, Apurva and Dirksen, Alexandra and Huremagic, Armin, and Fifield, David and Rodenburg, Dirk and Hynes, Rod and Madory, Doug and Ensafi, Roya},<br>
booktitle={In USENIX Security Symposium},<br>
year={2023}

Contributing

Our measurements are constantly improving to adapting to the changing Internet landscape, and we need the help of the community to improve GeoInspector and keep it updated! We welcome any and all contributions. Please feel free to open an Issue, Pull Request, or send us an email.

Licensing

This repository is released under the GNU General Public License (see LICENSE).

Contact

Email addresses: censoredplanet@umich.edu, ramaks@umich.edu, reethika@umich.edu, ensafi@umich.edu

Contributors

Ram Sundara Raman

Apurva Virkud

Gavin Li

Reethika Ramesh

Related Skills

View on GitHub
GitHub Stars7
CategoryProduct
Updated3mo ago
Forks4

Languages

Go

Security Score

82/100

Audited on Dec 26, 2025

No findings