Saturday, 15 June 2013

python - dnspython dynamic TXT record update with spaces? -


मेरे पास निम्न सरल अजगर स्क्रिप्ट है जो dnspython लाइब्रेरी का उपयोग करते हैं:

  import dns.query Import dns.tsigkeyring आयात dns.update आयात dns.rdatatype आयात datetime import sys # डेटा प्राप्त करें current_ip = '1.2.3.4' # अद्यतन DNS सर्वर कीरिंग = dns.tsigkeyring.from_text ({'my.key.name': 'xxxxxxxxxxxxxxxxxxxx = ('Myhost', 60, dns.rdatatype.A, current_ip) update.replace ('myhost', '' 60, dns.rdatatype.TXT, "xxx yyy zzz") प्रतिक्रिया = dns.query.tcp (अपडेट, 'ns.example.com')   

यह पर्याप्त रूप से अच्छी तरह से काम करता है जैसा कि इसका सबूत है होस्ट कमांड का आउटपुट, लेकिन किसी कारण के लिए मेरे TXT मान को प्रत्येक स्थान पर विभाजित किया जाता है और प्रत्येक खंड उद्धृत होता है। तो होस्ट कमांड से आउटपुट निम्न की तरह दिखता है:

  $ host -t किसी भी myhost.dyn.example.com myhost.dyn.example.com वर्णनात्मक पाठ "xxx" "yyy" " Zzz "myhost.dyn.example.com का पता 1.2.3.4 है। क्या कोई मुझे बता सकता है कि ऐसा क्यों हो रहा है, और यह कैसे उचित काम करता है, यह क्या होगा:  
  $ host -t किसी भी myhost.dyn.example.com myhost.dyn.example.com वर्णनात्मक पाठ "xxx yyy zzz" myhost.dyn.example.com का पता 1.2.3.4 है >  

मुझे कुछ बहुत स्पष्ट दिख रहा है, लेकिन dnspython के लिए प्रलेख उदाहरणों पर बहुत कम है और बहुत कुछ Googling ने अभी तक कुछ भी नहीं बताया है।

मुझे लगता है कि जवाब मिल गया है।

TXT रिकॉर्ड के लिए मूल्य उद्धरण में लिपटे जाने की ज़रूरत है - यानी स्ट्रिंग के भीतर उद्धरण होने की आवश्यकता है:

  update.replace ('myhost', 60, dns.rdatatype.TXT, '' Xxx yyy zzz "')   

पूरी तरह से काम करता है:

  $ host -t किसी भी myhost.dyn.example.com myhost.dyn.example.com वर्णनात्मक पाठ "xxx yyy zzz" myhost.dyn.example.com का पता 1.2.3.4 है   

यै: -)

No comments:

Post a Comment