tungd / Elixir Dns
Licence: bsd-3-clause
DNS library for Elixir
Stars: ✭ 86
Programming Languages
elixir
2628 projects
Labels
Projects that are alternatives of or similar to Elixir Dns
Cloudflare Cli
CLI utility managing CloudFlare services using CloudFlare API
Stars: ✭ 61 (-29.07%)
Mutual labels: dns
Wirehole
WireHole is a combination of WireGuard, Pi-hole, and Unbound in a docker-compose project with the intent of enabling users to quickly and easily create a personally managed full or split-tunnel WireGuard VPN with ad blocking capabilities thanks to Pi-hole, and DNS caching, additional privacy options, and upstream providers via Unbound.
Stars: ✭ 1,232 (+1332.56%)
Mutual labels: dns
Ioc2rpz
ioc2rpz is a place where threat intelligence meets DNS.
Stars: ✭ 67 (-22.09%)
Mutual labels: dns
Domainfuzz
Domain name permutation engine for detecting typo squatting, phishing and corporate espionage
Stars: ✭ 74 (-13.95%)
Mutual labels: dns
Noisy
Simple random DNS, HTTP/S internet traffic noise generator
Stars: ✭ 1,208 (+1304.65%)
Mutual labels: dns
1hosts
DNS filter-/blocklists | safe. private. clean. browsing!
Stars: ✭ 85 (-1.16%)
Mutual labels: dns
Dns Over Https
High performance DNS over HTTPS client & server
Stars: ✭ 1,189 (+1282.56%)
Mutual labels: dns
Blockcheck
Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ
Stars: ✭ 1,218 (+1316.28%)
Mutual labels: dns
Intercert
Use Let's Encrypt on private (LAN) servers using DNS validation
Stars: ✭ 68 (-20.93%)
Mutual labels: dns
Tor Router
A SOCKS, HTTP and DNS proxy for distributing traffic across multiple instances of Tor
Stars: ✭ 69 (-19.77%)
Mutual labels: dns
Simpledns
A very simple and small DNS Server to help understanding the protocol basics.
Stars: ✭ 62 (-27.91%)
Mutual labels: dns
Is Google
Verify that a request is from Google crawlers using Google's DNS verification steps
Stars: ✭ 82 (-4.65%)
Mutual labels: dns
Downloads
AD Health Check, Send HTML Email, Ping machines, Encrypt Password,Bulk Password,Microsoft Teams,Monitor Certificate expiry, Monitor cert expiry, AD attributes, IP to Hostname, Export AD group, CSV to SQL,Shutdown, Restart, Local Admin, Disk Space, Account expiry,Restore Permissions, Backup permissions, Delete Files Older Than X-Days, export DHCP options,Read Registry,Distribution group AD attributes,Monitor Windows Services,Export Reverse DNS,Task Monitor,Monitor and alert, Exchange Health check,Get Network Info, Export AD Attributes,AD group members, Office 365 Group member, SQL to CSV, Outlook save send attachments, Upload files to FTP,Exchange – Total Messages Sent Received, Set Teams Only Mode, Intune Duplicate Device,Intune Cleanup Not Evaluated, Ownership and Grant Permissions, Write Create Modify Registry , Organization Hierarchy from AD,Azure AD Privileged Identity Management,Intune – Export MAM Devices,Intune Marking devices as Corporate, Dynamic to Static Distribution Group,Monitor Alert Office 365 services,Group Member Count,Bulk Addition external users sharepoint, ADD to Exchange online License Group,All in One Office 365 Powershell,Bulk Addition of Secondary Email, Automate move mailboxes to o365, Addition Modification Termination Exchange users, Monitoring Unified Messaging port,Unified Messaging Extensions Report, Set Default Quota for SharePoint,Bulk Contact Creation and Forwarding, Uploading and Downloading files sftp, Monitoring Sftp file and download, Office 365 groups Write back, CSV parser, Email address update, Email address modify, MDM enrollment, Welcome Email, Intune Welcome Email, remove messages, remove email, SKOB to AD, SKOB to group, PowerApps report, Powerautomate Report, Flow report, Server QA, Server Check List, O365 IP range, IP range Monitor, o365 Admin Roles, memberof extraction, CSV to Excel, Skype Policy, UPN Flip, Rooms Report, License Reconciliation,Intune Bulk Device Removal, Device Removal, Clear Activesync, Lync Account Termination,Lync Account Removal, Enable office 365 services, Enable o365 Services, Export PST, Site collection Report, Office 365 Group Sites, System Admin,ActiveSync Report,White Space,Active Directory attributes, outlook automation, Intune Detect App, Distribution list Fix, Legacy DN, start service, stop service, disable service, Message tracking, Distribution lists report,Distribution groups report,Quota Report, Auto reply, out of office, robocopy multi session, Home Folder, local admin, Database, UPN SIP Mismatch, Recoverable deleted, teams number, Number assignment, teams phone, AD Group Hierarchy, Hierarchy membership, Sync Groups
Stars: ✭ 75 (-12.79%)
Mutual labels: dns
Ten34
A globally-distributed, eventually-consistent, 100% available key-value store ;)
Stars: ✭ 87 (+1.16%)
Mutual labels: dns
DNS
DNS library for Elixir. Currently, the package provides:
- Elixir structs to interface with
inet_dns
module. - DNS.Server behavior
- DNS client
Note: the inet_dns
module is considered internal to Erlang and subject to
change. If this happened this library will be updated to accommodate for that,
but for now inet_dns
is simple and worked for me.
Installation
The package is available in Hex and can be installed as:
-
Make sure you have the Erlang/OTP source files installed, otherwise the compilation will fail with an
{:error, :enoent}
message. On Ubuntu, this can be done usingapt-get install erlang-src
. -
Add dns to your list of dependencies in
mix.exs
:def deps do [{:dns, "~> 2.2.0"}] end
Usage
DNS client
iex> DNS.resolve("google.com")
{:ok, [{216, 58, 221, 110}]}
iex> DNS.resolve("notfound.domain")
{:error, :not_found}
iex> DNS.query("google.com")
%DNS.Record{anlist: [%DNS.Resource{bm: [], class: :in, cnt: 0,
data: {216, 58, 221, 110}, domain: 'google.com', func: false, tm: :undefined,
ttl: 129, type: :a}], arlist: [],
header: %DNS.Header{aa: false, id: 0, opcode: :query, pr: false, qr: true,
ra: true, rcode: 0, rd: false, tc: false}, nslist: [],
qdlist: [%DNS.Query{class: :in, domain: 'google.com', type: :a}]}
iex> DNS.resolve("google.com", :a, {"8.8.8.8", 53})
...
DNS server
defmodule ServerExample do
@moduledoc """
Example implementing DNS.Server behaviour
"""
@behaviour DNS.Server
use DNS.Server
def handle(record, _cl) do
Logger.info(fn -> "#{inspect(record)}" end)
query = hd(record.qdlist)
result =
case query.type do
:a -> {127, 0, 0, 1}
:cname -> 'your.domain.com'
:txt -> ['your txt value']
_ -> nil
end
resource = %DNS.Resource{
domain: query.domain,
class: query.class,
type: query.type,
ttl: 0,
data: result
}
%{record | anlist: [resource], header: %{record.header | qr: true}}
end
end
To run the example server in iex
:
iex(1)> c "example/test_server.ex"
[ServerExample]
iex(2)> {:ok, server_pid} = ServerExample.start_link 8000
Server listening at 8000
{:ok, #PID<0.180.0>}
iex(3)> Process.exit(server_pid, :normal)
For more information, see API Reference
License
BSD-3-Clauses
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].