/net-analysis

Tools, libraries and applications to analyze network measurements and detect interference.

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

Tools for Network Analysis

This repository contains tools, libraries and applications to analyze network measurements.

Disclaimer: This is not an officially supported Jigsaw product.

Experimental code. We may break you. Please let us know if you are using this code.

Installation

netanalysis is not currently in PyPI. Instead you can install straight from our Github repository:

pip install git+git://github.com/Jigsaw-Code/net-analysis.git@master

On a Pipfile, you can do:

[packages]
netanalysis = {git = "git://github.com/Jigsaw-Code/net-analysis.git", ref = "master"}

Tutorials

Analyze DNS Measurements

Analyze DNS Queries describes how to fetch data from OONI and check for interference.

netanalysis/analysis/DomainAnalysis.ipynb gives you an idea of what the analysis look like.

Fetch Google Traffic Data for analysis:

This uses the Google Transparency Report internal API. You must agree to Google APIs Terms of Service.

python -m netanalysis.traffic.data.fetch_google_traffic --output_dir=traffic_data/

See netanalysis/traffic/README.md for details.

Get information about an IP address:

python -m netanalysis.ip.ip_info 8.8.8.8

Check if an IP is valid for a domain:

python -m netanalysis.tls.domain_ip_validator jigsaw.google.com 172.217.10.78

Development

Set up your Python development environment

We welcome your contributions! See CONTRIBUTING.md for details and wishlist.