Dovrai mandare un determinato pacchetto UDP formattato ad hoc al server DNS specificando, all'interno del flag specifico, l'opzione relativa alla query MX.
Windows mette gia a disposizione un'utility per effettuare query DNS, tale 'nslookup.exe'. Qui un esempio:
codice:
C:\ nslookup
Server predefinito:  s-linux.scrumble.loc
Address:  192.168.0.254
> set type=MX
> tin.it
Server:  s-linux.scrumble.loc
Address:  192.168.0.254

Risposta da un server non di fiducia:
tin.it  MX preference = 10, mail exchanger = smtp.tin.it

tin.it  nameserver = dns.tin.it
tin.it  nameserver = dnsca.tin.it
smtp.tin.it     internet address = 62.211.72.33
smtp.tin.it     internet address = 62.211.72.32
dns.tin.it      internet address = 194.243.154.62
dnsca.tin.it    internet address = 195.31.190.31
A questo punto hai due strade:
- semplice: ti appoggi ad nslookup e parsi il suo output. Non è una soluzione portabile e raffinata ma è molto sbrigativa.
- più complessa: ti costruisci a mano il pacchetto UDP contenente la query DNS, lo mandi tramite una banalissima socket al server DNS del caso e ricevi il pacchetto di ritorno che parsi e stampi a video.
Dipendentemente dal linguaggio che utilizzi puoi magari provare a vedere se qualche anima pia ha scritto un modulo ad alto livello per effettuare query DNS di questo tipo, altrimenti ti tocca mettere mano all'RFC del protocollo DNS e costruirti il pacchetto da zero. In tal caso ti suggerisco di facilitarti la vita utilizzando nslookup in accoppiata con uno sniffer per osservare la struttura del pacchetto e provare a replicarla.

Hope this helps.

saluti ;-)