fix(seautils): retrieve A, AAAA, and CNAME records by default (& docstring changes)

This commit is contained in:
Seaswimmer 2024-05-28 18:55:09 -04:00
parent b27a3ee778
commit fb468ee63e
Signed by untrusted user: cswimr
GPG key ID: 5D671B5D03D65A7F

View file

@ -88,12 +88,19 @@ class SeaUtils(commands.Cog):
@commands.command(name='dig', aliases=['dnslookup', 'nslookup'])
@commands.is_owner()
async def dig(self, ctx: commands.Context, name: str, type: str | None = 'ANY', server: str | None = None, port: int = 53) -> None:
"""Retrieve DNS information for a domain."""
async def dig(self, ctx: commands.Context, name: str, type: str | None = None, server: str | None = None, port: int = 53) -> None:
"""Retrieve DNS information for a domain.
Uses `dig` to perform a DNS query. Will fall back to `nslookup` if `dig` is not installed on the system.
`nslookup` does not provide as much information as `dig`, so only the `name` parameter will be used if `nslookup` is used.
Will return the A, AAAA, and CNAME records for a domain by default. You can specify a different record type with the `type` parameter."""
command_opts: list[str | int] = ['dig']
query_types = [type] if type else ['A', 'AAAA', 'CNAME']
if server:
command_opts.extend(['@', server])
command_opts.extend([name, type, '-p', str(port), '+yaml'])
for query_type in query_types:
command_opts.extend([name, query_type])
command_opts.extend(['-p', str(port), '+yaml'])
try:
process: Process = await asyncio.create_subprocess_exec(*command_opts, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE)