dnsjit(1)

πŸ“¦
version 1.5.1 Β· 5 versions
, in epel 10, epel 9, fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

πŸ’– dnsjit β€” the manual, but make it make sense πŸ’–

okay bestie, gather round, because this is the dnsjit(1) page from the General Commands Manual and it's genuinely iconic.


✨ NAME ✨

dnsjit β€” a DNS engine based around LuaJIT for capturing, parsing, replaying and statistics gathering. yes, all four. she does it all. πŸ’…


🌸 SYNOPSIS 🌸

πŸŽ€ Run a Lua script

dnsjit file.lua ...

πŸ¦‹ Shebang-style

#!/usr/bin/env dnsjit
...

πŸ’œ DESCRIPTION πŸ’œ

so dnsjit is literally a combination of parts taken from dsc, dnscap, drool, and then put together around Lua to create a script-based engine. why? for easy capturing, parsing and statistics gathering of DNS messages, while also providing facilities for replaying DNS traffic. it's giving ✨ multitasking queen ✨.

one of the core functionalities that dnsjit brings is tying together C and Lua modules through a receiver/receive interface. this lets you create custom chains of functionality to meet whatever requirements you have β€” build your own lil pipeline, go off. πŸ”₯

another core functionality is the ability to parse and process DNS messages even if the messages are non-compliant with the DNS standards. messy DNS? she doesn't care. she handles it. πŸ™ˆ

⚠️ NOTE: the current implementation is ALPHA, which means functionality are not set and may be changed or removed. read that again bestie. things can move under your feet. πŸ’€

🌈 MODULE CATEGORIES 🌈

the following Lua module categories exists (their words, not mine, but we respect it):

  • dnsjit.core β€” Core modules for handling things like logging, DNS messages and receiver/receive functionality. the fundamentals, the backbone, the main character energy. πŸ‘‘
  • dnsjit.lib β€” Various Lua libraries or C library bindings. little helpers, big vibes. 🧚
  • dnsjit.input β€” Input modules used to read DNS messages in various ways. come on in, the packets are fine. πŸ“
  • dnsjit.filter β€” Filter modules to process or manipulate DNS messages. glow-up station for your messages. πŸ’–
  • dnsjit.output β€” Output modules used to display DNS message, export to various formats or replay them against other targets. send it, ship it, slay. ✨

See each category's man-page for more information.


⭐ LUA GLOBALS ⭐

the following Lua global variables are defined:

  • DNSJIT_VERSION β€” A string with the full version. the whole thing. the full picture. πŸŽ€
  • DNSJIT_MAJOR_VERSION β€” An integer with the major version number.
  • DNSJIT_MINOR_VERSION β€” An integer with the minor version number.
  • DNSJIT_PATCH_VERSION β€” An integer with the patch version number.
  • DNSJIT_BUGREPORT β€” A string with the email address to file bug reports to. πŸ“§
  • DNSJIT_URL β€” A string with the URL to the repository issue tracker, preferred place to file bug reports. the preferred place, ok? listen to her. πŸ’…

πŸ”₯ EXAMPLE πŸ”₯

Following example display the DNS ID found in queries. it's cute, it's short, it ate:

local input = require("dnsjit.input.pcapthread").new()
local output = require("dnsjit.filter.lua").new()

output:func(function(filter, object)
    local packet = object:cast()
    local dns = require("dnsjit.core.object.dns").new(packet)
    dns:parse()
    print(dns.id)
end)

input:open_offline("file.pcap")
input:only_queries(true)
input:receiver(output)
input:run()

See more examples in the examples directory. go explore bestie, there's lore in there. πŸ¦‹


🌟 SEE ALSO 🌟

dnsjit.core(3), dnsjit.lib(3), dnsjit.input(3), dnsjit.filter(3), dnsjit.output(3)


πŸ’– AUTHORS πŸ’–

Jerry LundstrΓΆm, DNS-OARC

Maintained by DNS-OARC

https://www.dns-oarc.net/

🫢 BUGS 🫢

For issues and feature requests please use:

https://codeberg.org/DNS-OARC/dnsjit/issues

For question and help please use:

admin@dns-oarc.net

okay that's the whole page bestie, no cap, nothing skipped, every single detail preserved because that's just how we do it. πŸ’…βœ¨

this was dnsjit 1.5.1, from the dnsjit(1) manual page β€” date and version both accounted for, mwah. πŸŽ€