Skip to content

An Elixir domain twist library that uses twistrs in a NIF for domain permutation.

License

Notifications You must be signed in to change notification settings

osintowl/domaintwistex

Repository files navigation

DomainTwistex

DomainTwistex is an Elixir library that provides domain name permutation and typosquatting detection capabilities, powered by the Rust-based twistrs library. Version 0.4.0 introduces enhanced concurrency features and improved domain validation.

Features

  • Generate domain permutations for typosquatting detection
  • Comprehensive domain validation including:
    • IP resolution
    • MX record validation
    • TXT record checking
    • Nameserver verification
    • Server response analysis
  • High-performance concurrent domain analysis
  • Rust-powered permutation generation

Installation

Add domaintwistex to your list of dependencies in mix.exs:

def deps do
  [
    {:domaintwistex, "~> 0.6.0"}
  ]
end

Prerequisites

  • Elixir 1.18 or later
  • Rust toolchain (for compiling the native extension)

Usage

# Basic domain analysis
domains = DomainTwistex.analyze_domain("example.com")

# Get domains with MX records
live_domains = DomainTwistex.get_live_mx_domains("example.com")

# Advanced usage with custom options
domains = DomainTwistex.analyze_domain("example.com",
  max_concurrency: 50,
  timeout: 5000,
  ordered: false
)

Configuration

Performance Options

New in 0.4.0:

  • max_concurrency: Maximum number of concurrent tasks (default: System.schedulers_online() * 2)
  • timeout: Timeout for each task in milliseconds (default: 5000)
  • ordered: Maintain result order (default: false)

Performance

The library uses:

  • Rust NIFs for domain permutation generation
  • Concurrent task processing for domain validation
  • Default system DNS resolution

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -am 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the BSD-3-Clause License.

Acknowledgments

This project includes code from twistrs, which is licensed under the MIT License. Copyright (c) 2023 JuxhinDB

Author

OsintOwl

About

An Elixir domain twist library that uses twistrs in a NIF for domain permutation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published