क्या लिनक्स पर सी में कोई फ़ंक्शन है जिसके द्वारा हम एमएक्स रिकॉर्ड (जैसे gethostbyname) से पूछ सकते हैं।सी लिनक्स में एमएक्स रिकॉर्ड क्वेरी
उत्तर
-lresolv
(BIND का libresolv
) के साथ लिंक करें।
#include <arpa/inet.h>
#include <resolv.h>
#include <string.h>
int resolvmx(const char *name, char **mxs, int limit) {
unsigned char response[NS_PACKETSZ]; /* big enough, right? */
ns_msg handle;
ns_rr rr;
int mx_index, ns_index, len;
char dispbuf[4096];
if ((len = res_search(name, C_IN, T_MX, response, sizeof(response))) < 0) {
/* WARN: res_search failed */
return -1;
}
if (ns_initparse(response, len, &handle) < 0) {
/* WARN: ns_initparse failed */
return 0;
}
len = ns_msg_count(handle, ns_s_an);
if (len < 0)
return 0;
for (mx_index = 0, ns_index = 0;
mx_index < limit && ns_index < len;
ns_index++) {
if (ns_parserr(&handle, ns_s_an, ns_index, &rr)) {
/* WARN: ns_parserr failed */
continue;
}
ns_sprintrr (&handle, &rr, NULL, NULL, dispbuf, sizeof (dispbuf));
if (ns_rr_class(rr) == ns_c_in && ns_rr_type(rr) == ns_t_mx) {
char mxname[MAXDNAME];
dn_expand(ns_msg_base(handle), ns_msg_base(handle) + ns_msg_size(handle), ns_rr_rdata(rr) + NS_INT16SZ, mxname, sizeof(mxname));
mxs[mx_index++] = strdup(mxname);
}
}
return mx_index;
}
क्या हमें इस कार्यक्रम को चलाने के लिए कुछ बाहरी पुस्तकालय की आवश्यकता है? – avd
जैसा कि मैंने पहले ही उल्लेख किया है: इसे 'libresolv' की आवश्यकता है, जो मूल रूप से BIND प्रोजेक्ट से आता है (लेकिन glibc की प्रतिलिपि है)। – ephemient
इस पुस्तकालय को कैसे स्थापित करें? क्या हम किसी बाहरी पुस्तकालय के बिना एमएक्स क्वेरी कर सकते हैं? – avd
मैं बस उपरोक्त उत्तर में जोड़ना चाहता हूं। मुझे संकलन त्रुटियां मिल रही थीं। खोज करने के बाद, मुझे संकलित करने के तरीके पर एक मंच पर मिला। पहला प्रयोग मुख्य समारोह के रूप में (जैसे कि gmail.com के लिए)
main(){
char *mxs[10];
int a;
printf("%d\n",a=resolvmx("gmail.com",mxs,10));
printf("%s\n",mxs[a-1]);
}
और उसके बाद के रूप में
gcc <pname.c> /usr/lib/libresolv.a (instead of gcc pname.c -lresolv)
यदि आप '/ usr/lib/libresolv.so' खो रहे हैं, तो आपको अभी भी 'libresolv.a' पर इंगित करने के बजाय' -Wl, -Bstatic -lresolv' का उपयोग करना चाहिए। – ephemient
लेकिन उपरोक्त विकल्प – avd
पर काम नहीं करते हैं आपको पुस्तकालय के पथ निर्दिष्ट करने की आवश्यकता नहीं है। जो समस्या आप शायद देख रहे हैं वह यह है कि '-resresolv' के बाद पुस्तकालयों को जोड़ा जा रहा है जिसके लिए कोई स्थिर संस्करण उपलब्ध नहीं है। तो आप इसके बजाय ऐसा कर सकते हैं: '-ब्लूएल, -बस्टैटिक-लेर्सोलव -ब्लूएल, -बैडेमिक', या अधिक संक्षेप में: '-स्टैटिक-लेर्सोलव-गतिशील'। – jxh
- 1. सी # का उपयोग कर एमएक्स रिकॉर्ड ढूँढना?
- 2. लिनक्स पर, मैं डोमेन के लिए एमएक्स रिकॉर्ड कैसे नकली कर सकता हूं?
- 3. एमएक्स
- 4. LINQ क्वेरी शीर्ष रिकॉर्ड
- 5. मर्ज क्वेरी और हटाने रिकॉर्ड
- 6. Zend_Db: fetchAll() या क्वेरी()/लाने() रिकॉर्ड
- 7. लिनक्स क्वेरी परिणाम को शब्दकोश में बदलें
- 8. जीएनयू/लिनक्स में सी
- 9. मैं पायथन में किसी डोमेन के लिए एमएक्स रिकॉर्ड कैसे मान्य करूं?
- 10. ईमेल सत्यापन एमएक्स लुकअप
- 11. गैर डुप्लिकेट रिकॉर्ड के लिए SQL क्वेरी
- 12. PHP पीडीओ तैयार कथन क्वेरी रिकॉर्ड
- 13. तालिका से डुप्लिकेट रिकॉर्ड हटाना - SQL क्वेरी
- 14. MySQL क्वेरी से n वें रिकॉर्ड लौटें
- 15. ईमेल पते को सत्यापित करने के लिए एमएक्स रिकॉर्ड का उपयोग
- 16. कौन सा MySQL क्वेरी प्रभावी है रिकॉर्ड
- 17. एसक्यूएल क्वेरी हटाए जा सकते हैं रिकॉर्ड
- 18. क्वेरी जो रिकॉर्ड दिखाती है जो तालिका
- 19. लिनक्स सी
- 20. सी ++ लिनक्स
- 21. सी ++ लिनक्स में सॉकेट टाइमआउट
- 22. LINQ क्वेरी में एकाधिक रिकॉर्ड हटाने का सबसे अच्छा तरीका?
- 23. चयन गिनती और एक सिंगल क्वेरी में अन्य रिकॉर्ड
- 24. सी ++ में लिनक्स पर आप ऑडियो (WAV पर) कैसे चलाते हैं या रिकॉर्ड करते हैं?
- 25. सी ++ टेम्पलेट्स और एमएक्स: इंडेंटेशन को अनुकूलित करना
- 26. क्या PHP मेल() फ़ंक्शन काम करता है यदि मेरे पास एमएक्स रिकॉर्ड
- 27. सी और सी ++ के संदर्भ में सक्रियण रिकॉर्ड क्या है?
- 28. लिनक्स में सी/सी ++ में उपयोगकर्ता नाम कैसे प्राप्त करें?
- 29. लिनक्स में सी ++ के बिना सी में अपवाद हैंडलिंग
- 30. लिनक्स सी कंसोल एप्लिकेशन
यह संकलित करें यह कोई डुप्लिकेट का डुप्लिकेट है। –
PLease इसे हटा नहीं है। अन्य पोस्ट में पूर्ण जवाब नहीं हैं। यह पूरी तरह से समस्या को ठीक करता है। – avd