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:
A questo punto hai due strade: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
- 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 ;-)

Rispondi quotando