DNS MX Record

14 отговора 481 прегледа
#1

DNS MX Record

znae li nqkoj kak da move da se polu4i toq zapis primerno za domain1.com ?
stawa duma za kak da stane towa sys c++.

юбря, чубанииииииии !
Отговор
в отговор на Zod #2

Re: DNS MX Record

hmm.. interesno... ami whois komandata pod linux wzima tez raboti - a wse nekude trjabwa i sorsovete i da ima.

tirulirutatuutuu
Отговор
в отговор на malkia #3

Re: DNS MX Record

ako q izwikam primerno s parametyr DIR.BG kwo she mi wyrne ?

юбря, чубанииииииии !
Отговор
в отговор на Zod #4

Re: DNS MX Record

ima gotovi biblioteki/komponenti, potursi iz inet
az sum polzval takiva na VB i Java

C++ - waste of time for web development
Отговор
в отговор на www #5

Re: DNS MX Record

tyrsih, no nishto ne namerih. ne trqbwa da e COM dll w nikakyw slu4aj, shtoto takyw si imam.

юбря, чубанииииииии !
Отговор
в отговор на Zod #6

Re: DNS MX Record


int CompareMXRecords(const void *p1, const void *p2)
{
#define inthostaddr1 (*((const adns_rr_inthostaddr *)p1))
#define inthostaddr2 (*((const adns_rr_inthostaddr *)p2))

return inthostaddr1.i - inthostaddr2.i;

#undef inthostaddr1
#undef inthostaddr2
}

...
adns_state ads;
adns_initflags initflags;
adns_queryflags queryflags;
adns_answer *pDNSAnswer;

initflags = (adns_initflags)(adns_if_noerrprint | adns_if_noserverwarn);
if (adns_init(&ads, initflags, 0) == 0)
{
queryflags = (adns_queryflags)(adns_qf_search | adns_qf_cname_loose | adns_qf_quoteok_query);
adns_synchronous(ads, domainName, adns_r_mx, queryflags, &pDNSAnswer);
if (pDNSAnswer->status == adns_s_ok)
{
qsort (pDNSAnswer->rrs.inthostaddr, pDNSAnswer->nrrs, sizeof(adns_rr_inthostaddr), CompareMXRecords); // opcionalno, ama vse pak MX hostovete si imam prioriteti
for (i = 0; i < pDNSAnswer->nrrs; i++)
{
printf("%s\n", pDNSAnswer->rrs.inthostaddr .ha.host);
// i kvoto drugo.
...
}
if (pDNSAnswer->cname != NULL)
free(pDNSAnswer->cname);
}
free(pDNSAnswer);
}
adns_finish(ads);
...


e primer za adns. Koeto nikyde ne pishe, che stava i za Windows, ama i nikyde ne pishe, che ne stava :-)

Отговор
в отговор на Zod #7

Re: DNS MX Record

Пробвай с това:
nslookup -type=MX dir.bg

Под 98 незнам, но 2000 и unix-ите ( включително пингвинчето ) го разбират.

Отговор
в отговор на Potencialen emigrant #8

Re: DNS MX Record

a kakwi #include-owe trqbwa da obqwa za da go podkaram primera ?

юбря, чубанииииииии !
Отговор
в отговор на Zod #9

Re: DNS MX Record

Ibasi, pich, tova ako ne mojesh da syobrazish, znachi nyama i da se setish kyde clubs.dir.bg e klycnal edin index na masiv v primera...

#include <adns.h>

Отговор
в отговор на Zod #10

Re: DNS MX Record

gethostbyname, gethostbyaddr - тия функции не ми се вярва да ги няма в Windows. Най-много да са ги прекръстили леко.

Отговор
в отговор на hoopla #11

Re: DNS MX Record

Mi te ne warshat mnogo ranorta oti sa slawano za A i PTR(?) zapisite

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на SDR #12

Re: DNS MX Record

> Mi te ne warshat mnogo ranorta oti sa slawano za A i PTR(?) zapisite

Ба, не вършат, същата баница са...

Ето какво имам предвид. MX записите, така или иначе, не е редно да сочат IP адрес, ако държиш да си получаваш пощата. Редно е да сочат име. Значи, ако имаш mail.blah.com, търсиш да ресолвнеш само blah.com. Вярно, че това не винаги ще свърши работа.

Ако имаш dig, можеш него да ползваш и да му парсваш резултата.

В краен случай си конструираш един UDP пакет по правилата от RFC-тата, пращаш го на name сървъра и пак парсваш отговора. Ама това упражнение не е за всеки.

Отговор
в отговор на hoopla #13

Re: DNS MX Record

kwko e dig?

kyde moga da namerq po-podrobno info za towa kak da si podreden UDP paketa, koto da se prati na dns server-a ?

юбря, чубанииииииии !
Отговор
в отговор на Zod #14

Re: DNS MX Record

dig е самостоятелна програма, която върви с bind и е подобреният вариант на nslookup. Значи, дръпни си сорса на bind, ако нямаш Linux или някакво BSD. Ето в какъв вид ти дава резултатите:

$ dig mail.dir.bg

; <<>> DiG 9.2.0 <<>> mail.dir.bg
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13709
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;mail.dir.bg. IN A

;; ANSWER SECTION:
mail.dir.bg. 60718 IN A 194.145.63.28

;; AUTHORITY SECTION:
dir.bg. 74654 IN NS sql.dir.bg.
dir.bg. 74654 IN NS purgatory.spnet.net.
dir.bg. 74654 IN NS ns.dir.bg.
dir.bg. 74654 IN NS ns.spnet.net.

;; ADDITIONAL SECTION:
ns.dir.bg. 68951 IN A 194.145.63.2
ns.spnet.net. 1890 IN A 212.50.0.10
sql.dir.bg. 85077 IN A 194.145.63.21
purgatory.spnet.net. 1733 IN A 212.50.0.15

;; Query time: 29 msec
;; SERVER: 212.91.178.131#53(212.91.178.131)
;; WHEN: Fri Oct 4 18:38:13 2002
;; MSG SIZE rcvd: 194


Намери RFC-та и търси std13 и rfc-1035. Там трябва да е описано всичко, но не е зле да прочетеш и RFC-тата, към които има препратки в тия два документа.

Намери си един добър снифър - препоръчвам ти ethereal, работи и под Windows. Пускаш dig, прихващаш заявката и отговора и по документацията се ориентираш.

Правил съм програма от типа на dig, с описаните идеи, без да използвам gethostbyname и gethostbyaddr, макар и само за IPv4, мога и още помощ да ти окажа, ама не мога да ти пратя сорс, понеже са ми плащали за тая работа.

Отговор
в отговор на hoopla #15

Re: DNS MX Record

На човека ако му требе само Windows приложенийце, май ще му е по-лесно да се пребори с DnsQuery от Platform SDK-то ...

Отговор