{
    "mode": "man",
    "parameter": "MDIG",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/MDIG/1/json",
    "generated": "2026-07-05T02:10:50Z",
    "synopsis": "mdig  {@server}  [-f  filename]  [-h]  [-v]  [ [-4] | [-6] ] [-m] [-b address] [-p port#] [-c\nclass] [-t type] [-i] [-x addr] [plusopt...]\nmdig {-h}\nmdig [@server] {global-opt...} { {local-opt...} {query} ...}",
    "sections": {
        "NAME": {
            "content": "mdig - DNS pipelined lookup utility\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "mdig  {@server}  [-f  filename]  [-h]  [-v]  [ [-4] | [-6] ] [-m] [-b address] [-p port#] [-c\nclass] [-t type] [-i] [-x addr] [plusopt...]\n\nmdig {-h}\n\nmdig [@server] {global-opt...} { {local-opt...} {query} ...}\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "mdig is a multiple/pipelined query version of dig: instead of waiting for  a  response  after\nsending each query, it begins by sending all queries. Responses are displayed in the order in\nwhich they are received, not in the order the corresponding queries were sent.\n\nmdig options are a subset of the dig options, and are divided into \"anywhere options,\"  which\ncan occur anywhere, \"global options,\" which must occur before the query name (or they are ig‐\nnored with a warning), and \"local options,\" which apply to the  next  query  on  the  command\nline.\n\nThe  @server  option  is  a mandatory global option. It is the name or IP address of the name\nserver to query. (Unlike dig, this value is not retrieved from /etc/resolv.conf.) It  can  be\nan IPv4 address in dotted-decimal notation, an IPv6 address in colon-delimited notation, or a\nhostname. When the supplied server argument is a hostname, mdig  resolves  that  name  before\nquerying the name server.\n\nmdig  provides  a  number of query options which affect the way in which lookups are made and\nthe results displayed. Some of these set or reset flag bits in the query header, some  deter‐\nmine  which  sections  of  the answer get printed, and others determine the timeout and retry\nstrategies.\n\nEach query option is identified by a keyword preceded by a plus sign (+). Some  keywords  set\nor reset an option. These may be preceded by the string no to negate the meaning of that key‐\nword. Other keywords assign values to options like the timeout interval. They have  the  form\n+keyword=value.\n",
            "subsections": []
        },
        "ANYWHERE OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-f",
                    "content": "process from the file filename. The file contains a number of queries, one  per  line.\nEach  entry in the file should be organized in the same way they would be presented as\nqueries to mdig using the command-line interface.\n",
                    "flag": "-f"
                },
                {
                    "name": "-h",
                    "content": "tions, and exit.\n",
                    "flag": "-h"
                },
                {
                    "name": "-v",
                    "content": "",
                    "flag": "-v"
                }
            ]
        },
        "GLOBAL OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-4",
                    "content": "",
                    "flag": "-4"
                },
                {
                    "name": "-6",
                    "content": "",
                    "flag": "-6"
                },
                {
                    "name": "-b address",
                    "content": "This  option  sets the source IP address of the query to address. This must be a valid\naddress on one of the host's network interfaces or \"0.0.0.0\" or \"::\". An optional port\nmay be specified by appending \"#<port>\"\n",
                    "flag": "-b"
                },
                {
                    "name": "-m",
                    "content": "",
                    "flag": "-m"
                },
                {
                    "name": "-p port#",
                    "content": "This  option  is  used  when a non-standard port number is to be queried. port# is the\nport number that mdig sends its queries to, instead of the standard  DNS  port  number\n53.  This  option is used to test a name server that has been configured to listen for\nqueries on a non-standard port number.\n\nThe global query options are:\n",
                    "flag": "-p"
                },
                {
                    "name": "+additional, +noadditional",
                    "content": "This option displays [or does not display] the additional section of a reply. The  de‐\nfault is to display it.\n"
                },
                {
                    "name": "+all, +noall",
                    "content": "This option sets or clears all display flags.\n"
                },
                {
                    "name": "+answer, +noanswer",
                    "content": "This  option displays [or does not display] the answer section of a reply. The default\nis to display it.\n"
                },
                {
                    "name": "+authority, +noauthority",
                    "content": "This option displays [or does not display] the authority section of a reply.  The  de‐\nfault is to display it.\n"
                },
                {
                    "name": "+besteffort, +nobesteffort",
                    "content": "This  option  attempts to display [or does not display] the contents of messages which\nare malformed. The default is to not display malformed answers.\n\n+burst This option delays queries until the start of the next second.\n"
                },
                {
                    "name": "+cl, +nocl",
                    "content": "This option displays [or does not display] the CLASS when printing the record.\n"
                },
                {
                    "name": "+comments, +nocomments",
                    "content": "This option toggles the display of comment lines in the  output.  The  default  is  to\nprint comments.\n"
                },
                {
                    "name": "+continue, +nocontinue",
                    "content": "This option toggles continuation on errors (e.g. timeouts).\n"
                },
                {
                    "name": "+crypto, +nocrypto",
                    "content": "This  option  toggles  the display of cryptographic fields in DNSSEC records. The con‐\ntents of these fields are unnecessary to debug most DNSSEC validation failures and re‐\nmoving  them makes it easier to see the common failures. The default is to display the\nfields. When omitted, they are replaced by the string \"[omitted]\"; in the DNSKEY case,\nthe key ID is displayed as the replacement, e.g., [ key id = value ].\n"
                },
                {
                    "name": "+dscp=value",
                    "content": "This  option  formerly  set the DSCP value used when sending a query.  It is now obso‐\nlete, and has no effect.\n"
                },
                {
                    "name": "+multiline, +nomultiline",
                    "content": "This option toggles printing of records, like the SOA records, in a verbose multi-line\nformat  with  human-readable comments. The default is to print each record on a single\nline, to facilitate machine parsing of the mdig output.\n"
                },
                {
                    "name": "+question, +noquestion",
                    "content": "This option prints [or does not print] the question section of a query when an  answer\nis returned. The default is to print the question section as a comment.\n"
                },
                {
                    "name": "+rrcomments, +norrcomments",
                    "content": "This option toggles the display of per-record comments in the output (for example, hu‐\nman-readable key information about DNSKEY records). The default is not to print record\ncomments unless multiline mode is active.\n"
                },
                {
                    "name": "+short, +noshort",
                    "content": "This option provides [or does not provide] a terse answer. The default is to print the\nanswer in a verbose form.\n"
                },
                {
                    "name": "+split=W",
                    "content": "This option splits long hex- or  base64-formatted  fields  in  resource  records  into\nchunks  of W characters (where W is rounded up to the nearest multiple of 4). +nosplit\nor +split=0 causes fields not to be split. The default is 56 characters, or 44 charac‐\nters when multiline mode is active.\n"
                },
                {
                    "name": "+tcp, +notcp",
                    "content": "This  option uses [or does not use] TCP when querying name servers. The default behav‐\nior is to use UDP.\n"
                },
                {
                    "name": "+ttlid, +nottlid",
                    "content": "This option displays [or does not display] the TTL when printing the record.\n"
                },
                {
                    "name": "+ttlunits, +nottlunits",
                    "content": "This option displays [or does not display] the TTL  in  friendly  human-readable  time\nunits  of \"s\", \"m\", \"h\", \"d\", and \"w\", representing seconds, minutes, hours, days, and\nweeks. This implies +ttlid.\n"
                },
                {
                    "name": "+vc, +novc",
                    "content": "This option uses [or does not use] TCP when querying name servers. This alternate syn‐\ntax  to  +tcp is provided for backwards compatibility. The vc stands for \"virtual cir‐\ncuit\".\n"
                }
            ]
        },
        "LOCAL OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-c class",
                    "content": "This option sets the query class to class. It can be any valid query  class  which  is\nsupported in BIND 9. The default query class is \"IN\".\n",
                    "flag": "-c"
                },
                {
                    "name": "-t type",
                    "content": "This  option sets the query type to type. It can be any valid query type which is sup‐\nported in BIND 9. The default query type is \"A\", unless the -x option is  supplied  to\nindicate a reverse lookup with the \"PTR\" query type.\n",
                    "flag": "-t"
                },
                {
                    "name": "-x addr",
                    "content": "Reverse  lookups - mapping addresses to names - are simplified by this option. addr is\nan IPv4 address in dotted-decimal notation, or a colon-delimited  IPv6  address.  mdig\nautomatically  performs  a  lookup  for a query name like 11.12.13.10.in-addr.arpa and\nsets the query type and class to PTR and IN respectively. By default,  IPv6  addresses\nare looked up using nibble format under the IP6.ARPA domain.\n\nThe local query options are:\n",
                    "flag": "-x"
                },
                {
                    "name": "+aaflag, +noaaflag",
                    "content": "This is a synonym for +aaonly, +noaaonly.\n"
                },
                {
                    "name": "+aaonly, +noaaonly",
                    "content": "This sets the aa flag in the query.\n"
                },
                {
                    "name": "+adflag, +noadflag",
                    "content": "This  sets  [or  does not set] the AD (authentic data) bit in the query. This requests\nthe server to return whether all of the answer and authority sections  have  all  been\nvalidated  as  secure,  according to the security policy of the server. AD=1 indicates\nthat all records have been validated as secure and the answer is not  from  a  OPT-OUT\nrange.  AD=0  indicates  that  some  part of the answer was insecure or not validated.\nThis bit is set by default.\n"
                },
                {
                    "name": "+bufsize=B",
                    "content": "This sets the UDP message buffer size advertised using EDNS0 to B bytes.  The  maximum\nand  minimum  sizes  of  this buffer are 65535 and 0 respectively. Values outside this\nrange are rounded up or down appropriately. Values other than zero cause a EDNS  query\nto be sent.\n"
                },
                {
                    "name": "+cdflag, +nocdflag",
                    "content": "This sets [or does not set] the CD (checking disabled) bit in the query. This requests\nthe server to not perform DNSSEC validation of responses.\n"
                },
                {
                    "name": "+cookie=####, +nocookie",
                    "content": "This sends [or does not send] a COOKIE EDNS option, with an optional value.  Replaying\na COOKIE from a previous response allows the server to identify a previous client. The\ndefault is +nocookie.\n"
                },
                {
                    "name": "+dnssec, +nodnssec",
                    "content": "This requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in the OPT\nrecord in the additional section of the query.\n"
                },
                {
                    "name": "+edns[=#], +noedns",
                    "content": "This  specifies [or does not specify] the EDNS version to query with. Valid values are\n0 to 255.  Setting the EDNS version causes an EDNS query to be sent.   +noedns  clears\nthe remembered EDNS version. EDNS is set to 0 by default.\n"
                },
                {
                    "name": "+ednsflags[=#], +noednsflags",
                    "content": "This  sets  the must-be-zero EDNS flag bits (Z bits) to the specified value.  Decimal,\nhex, and octal encodings are accepted. Setting a named flag (e.g. DO) is silently  ig‐\nnored. By default, no Z bits are set.\n"
                },
                {
                    "name": "+ednsopt[=code[:value]], +noednsopt",
                    "content": "This  specifies  [or  does not specify] an EDNS option with code point code and an op‐\ntional payload of value as a hexadecimal string. +noednsopt clears the EDNS options to\nbe sent.\n"
                },
                {
                    "name": "+expire, +noexpire",
                    "content": "This toggles sending of an EDNS Expire option.\n"
                },
                {
                    "name": "+nsid, +nonsid",
                    "content": "This toggles inclusion of an EDNS name server ID request when sending a query.\n"
                },
                {
                    "name": "+recurse, +norecurse",
                    "content": "This  toggles the setting of the RD (recursion desired) bit in the query.  This bit is\nset by default, which means mdig normally sends recursive queries.\n"
                },
                {
                    "name": "+retry=T",
                    "content": "This sets the number of times to retry UDP queries to server to T instead of  the  de‐\nfault, 2. Unlike +tries, this does not include the initial query.\n"
                },
                {
                    "name": "+subnet=addr[/prefix-length], +nosubnet",
                    "content": "This  sends  [or does not send] an EDNS Client Subnet option with the specified IP ad‐\ndress or network prefix.\n"
                },
                {
                    "name": "mdig +subnet=0.0.0.0/0, or simply mdig +subnet=0",
                    "content": "This sends an EDNS client-subnet option with  an  empty  address  and  a  source  pre‐\nfix-length  of  zero,  which  signals a resolver that the client's address information\nmust not be used when resolving this query.\n"
                },
                {
                    "name": "+timeout=T",
                    "content": "This sets the timeout for a query to T seconds. The default timeout is 5  seconds  for\nUDP  transport  and  10 for TCP. An attempt to set T to less than 1 results in a query\ntimeout of 1 second being applied.\n"
                },
                {
                    "name": "+tries=T",
                    "content": "This sets the number of times to try UDP queries to server to T  instead  of  the  de‐\nfault,  3. If T is less than or equal to zero, the number of tries is silently rounded\nup to 1.\n"
                },
                {
                    "name": "+udptimeout=T",
                    "content": "This sets the timeout between UDP query retries to T.\n"
                },
                {
                    "name": "+unknownformat, +nounknownformat",
                    "content": "This prints [or does not print] all RDATA in unknown RR-type presentation format  (see\nRFC  3597).   The default is to print RDATA for known types in the type's presentation\nformat.\n"
                },
                {
                    "name": "+yaml, +noyaml",
                    "content": "This toggles printing of the responses in a detailed YAML format.\n"
                },
                {
                    "name": "+zflag, +nozflag",
                    "content": "This sets [or does not set] the last unassigned DNS header flag in a DNS query.   This\nflag is off by default.\n"
                }
            ]
        },
        "SEE ALSO": {
            "content": "dig(1), RFC 1035.\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Internet Systems Consortium\n",
            "subsections": []
        },
        "COPYRIGHT": {
            "content": "2026, Internet Systems Consortium\n\n\n\n\n9.18.39-0ubuntu0.22.04.4-Ubuntu              2025-08-13                                      MDIG(1)",
            "subsections": []
        }
    },
    "summary": "mdig - DNS pipelined lookup utility",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "dig",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/dig/1/json"
        }
    ]
}