Giter VIP home page Giter VIP logo

rusolver's Introduction

Rusolver

Fast DNS resolver written in Rust. Works on Linux, Windows, macOS, Android, Aarch64, ARM and possibly in your oven.

Goal

Offer the community an efficient host resolution tool.

Performance, speed and accuracy

Rusolver is very resource friendly, you can use up to 1000 threads in an single core machine and this will work without any problem, the bottleneck for this tool is your network speed. By default, Rusolver is able to perform resolution for ~1532 hosts per second in good network conditions (tested in an AWS machine). Additionally the tool does a double-check by default for resolved hosts against Cloudflare, Google, Quad9, OpenDNS, Verisign, UncensoredDNS and dns.watch DNS, with that algoritm the possibility to get an false-positive is null.

Demo

The files used in the demo are here. hosts.txt is the list of hosts to perform resolution and the resolved.txt are the ones that Rusolver found as active.

asciicast

Installation

Using precompiled binaries.

Download the asset from the releases page according to your platform.

Using the source code.

  1. You need to have the latest stable Rust version insalled in your system.
  2. Clone the repo or download the source code, then run cargo build --release.
  3. Execute the tool from ./target/release/rusolver or add it to your system PATH to use from anywhere.

Optionally you can just use cargo install rusolver

Using the AUR packages. (Arch Linux)

rusolver can be installed from available AUR packages using an AUR helper. For example,

yay -S rusolver

If you prefer, you can clone the AUR packages and then compile them with makepkg. For example,

git clone https://aur.archlinux.org/rusolver.git && cd rusolver && makepkg -si

Usage

  • By default we only show the resolved hosts
cat hosts.txt | rusolver
  • If you want to see the discovered IP addresses:
cat hosts.txt | rusolver -i

You can tune the --timeout and -t/--threads options according to your needs. See rusolver --help

rusolver's People

Contributors

edu4rdshl avatar erjanmx avatar orhun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rusolver's Issues

Fix the issue in windows!

Hello i tried the precompiled windows exe and the first time it worked as expected but on 2nd time it just gave me 2 subdomains live output and in the input subdomain text file there are at least 200 of subdomains and the tools now tells that only 2 subdomains are live which isn't the case in real and i also tried to compile the rust file on my machine but rust gave me few errors that i don't wanna fix(i guess a long fix requires). and tried downloading the exe file again and tried running as well but same it still gives me 2 subdomains only and 2-3 blank lines :(

Problem when adding ip list of resolvers

thread 'main' panicked at 'internal error: entered unreachable code: Error parsing the server 199.83.64.222 :53, only IPv4 are allowed. Error: invalid IP address syntax', src/main.rs:221:23
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

thank you

No output displayed or saved

Hi, where does the output go when we call from CLI using a file in the same directory as an argument? I see the task complete, but even with the -i tag I see nothing print to console or saved in any directories.

Thank you

Add new feature for statistics.

Hi there,
Please add a new feature for statistics. This could use a new command line option such as -stats, e.g. echo www.example.com | rusolver -i -stats this will show us how many wordlists have been checked and how many wordlists have been found. I think it will grade.

Support for other resource records

Please add support for AAAA, TXT, SRV, NAPTR, PTR, CNAME, DNAME, MX, NS, SOA, LOC, SVCB, HTTPS, SPF, CAA and AVC resource records. This could use a new command line option such as -t, e.g. echo www.example.com | rusolver -i -t AAAA. It might also make sense to change -i/--ip to -d/--data with the text Display the record data.

Support for fully-qualified domain names

At present, no results are returned when supplying a fully-qualified domain name:-

$ echo www.example.com. | rusolver

$ echo www.example.com | rusolver
www.example.com

DNSx vs Rusolver

I was just curious how does your tool stack up against project discovery's DNSx in terms of accuracy and speed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.