All Projects → HowNetWorks → tracetrout

HowNetWorks / tracetrout

Licence: MIT license
A magical reverse traceroute HTTP(S) server

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to tracetrout

Vedetta
OpenBSD Router Boilerplate
Stars: ✭ 260 (+441.67%)
Mutual labels:  ipv6, ipv4, http-server
Icmplib
Easily forge ICMP packets and make your own ping and traceroute.
Stars: ✭ 58 (+20.83%)
Mutual labels:  ipv6, ipv4, traceroute
fakeroute
IPv4 and IPv6 traceroute fake hop generator through IP spoofing
Stars: ✭ 75 (+56.25%)
Mutual labels:  ipv6, ipv4, traceroute
ENet-CSharp
A improved fork of ENet, a tried and true networking library. C, C++, C# compatible.
Stars: ✭ 65 (+35.42%)
Mutual labels:  ipv6, ipv4
PHP-IPAddress
IP Address utility classes for PHP
Stars: ✭ 63 (+31.25%)
Mutual labels:  ipv6, ipv4
python-string-utils
A handy Python library to validate, manipulate and generate strings
Stars: ✭ 47 (-2.08%)
Mutual labels:  ipv6, ipv4
ip-finder-cli
The official command line client for IPFinder
Stars: ✭ 11 (-77.08%)
Mutual labels:  ipv6, ipv4
PuppyProxy
A simple HTTP proxy in C# including support for HTTP CONNECT tunneling
Stars: ✭ 37 (-22.92%)
Mutual labels:  http-server, https-server
zx-ip-address
Deprecated
Stars: ✭ 96 (+100%)
Mutual labels:  ipv6, ipv4
IP2Location-C-Library
IP2Location C library enables the user to find the country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code, weather station code, weather station name, mobile, usage types, etc that any IP address or hostname originates from.
Stars: ✭ 37 (-22.92%)
Mutual labels:  ipv6, ipv4
masscanned
Let's be scanned. A low-interaction honeypot focused on network scanners and bots. It integrates very well with IVRE to build a self-hosted alternative to GreyNoise.
Stars: ✭ 50 (+4.17%)
Mutual labels:  ipv6, ipv4
ipv6calc
ipv6calc
Stars: ✭ 33 (-31.25%)
Mutual labels:  ipv6, ipv4
sync hosts
解除Resilio Sync/BTSync限制china地区 镜像:https://coding.net/u/renerli/p/sync_hosts/git
Stars: ✭ 15 (-68.75%)
Mutual labels:  ipv6, ipv4
captcp
A open source program for TCP analysis of PCAP files
Stars: ✭ 110 (+129.17%)
Mutual labels:  ipv6, ipv4
is-localhost-ip
Checks whether given host/DNS name or IPv4/IPv6 address belongs to the local machine
Stars: ✭ 19 (-60.42%)
Mutual labels:  ipv6, ipv4
TFTPServer
Managed TFTP server implementation, written in C#. Features: IPv4 and IPv6, blocksize, single port mode, windowed mode, unlimited transfers, MIT licensed
Stars: ✭ 28 (-41.67%)
Mutual labels:  ipv6, ipv4
accomplist
ACCOMPLIST - List Compiler
Stars: ✭ 51 (+6.25%)
Mutual labels:  ipv6, ipv4
ipv6
IPv6-adresse.dk source & data
Stars: ✭ 27 (-43.75%)
Mutual labels:  ipv6, ipv4
ip2location-nginx
Nginx module that allows user to lookup for geolocation information using IP2Location database.
Stars: ✭ 33 (-31.25%)
Mutual labels:  ipv6, ipv4
netcalc
Advanced network calculator and address planning helper
Stars: ✭ 20 (-58.33%)
Mutual labels:  ipv6, ipv4

TraceTrout CircleCI

TraceTrout is a HTTP(S) server that returns a reverse traceroute from the server to the client. It does this by piggybacking the established connection, modifying the outgoing TCP packets' TTL values while the server is sending the response.

Figure 1: A dramatization of a rainbot trout swimming against the data stream.

Quickstart

$ docker run -ti --rm -p 8080:8080 --cap-add NET_ADMIN hownetworks/tracetrout

The above Docker image doesn't support IPv6. Use the hownetworks/tracetrout:ipv6 image if you're feeling adventurous and want to work with Docker and IPv6.

Here's a Docker Compose file for getting you started with the following features:

version: "3"

services:
  tracetrout:
    image: hownetworks/tracetrout
    volumes:
      - autocert-cache:/autocert-cache
    environment:
      INFO_URI_TEMPLATE: http://whereabouts:8080/ip/{ip}
      HTTPS_ENABLED: "true"
      HTTPS_AUTOCERT_ENABLED: "true"      
      HTTPS_AUTOCERT_DIR_CACHE: /autocert-cache
      ## Uncomment the following line to limit the automatic cert generation to the given hostname(s)
      # HTTPS_AUTOCERT_HOSTS: tracetrout1.example.com,tracetrout2.example.com      
    ports:
      - "443:8080"
    cap_add:
      - NET_ADMIN

  whereabouts:
    image: hownetworks/whereabouts

volumes:
  autocert-cache: {}

A Less Quick Start

Prerequisites

The code is designed to run on Linux. Also ensure that iptables and libnetfilter-queue1 packages are installed:

$ apt-get install iptables libnetfilter-queue1

Modify your iptables:

$ iptables -A OUTPUT -p tcp --sport 8080 -j NFQUEUE --queue-num 0
$ iptables -A INPUT -p tcp --dport 8080 -j NFQUEUE --queue-num 0
$ iptables -A INPUT -p icmp --icmp-type time-exceeded -j NFQUEUE --queue-num 0
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Compiling

Compilation requires the libnetfilter-queue-dev package and Go 1.8 or later.

$ apt-get install libnetfilter-queue-dev
$ go build

Running

To start listening on port 8080:

$ ./tracetrout

Prior Art

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].