首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TXT字符串的NSUpdate更新

TXT字符串的NSUpdate更新
EN

Stack Overflow用户
提问于 2018-05-10 23:15:18
回答 1查看 456关注 0票数 0

使用NSUpdate更新PHP记录的iam

一切正常,但当我想要更新/添加 TXT记录时,有些地方出错了。

添加文本记录并不像SRV OF SPF那样难。

不:) .

问题:试图添加一些类似于“这是TXT记录”的内容

将其从PHP发送到NSUPDATE (与其他记录一起工作)

绑定DNS服务器得到这个:在TXT中的域是“这个”是“一个”"TXT“”记录“”“,但是这是错误的!检查了我的代码,看了arround..it的剂量工作。

代码:

代码语言:javascript
复制
    <?php
        if ($txt_true) {
             $ttl2 = '36';
                // TXT string could be almost anything, just make sure it's quoted.
                // $txt_var = str_replace("'", "", $txt_var);
                // $txt_var = str_replace('"', "", $txt_var);
                //$txt_var = '"'. $txt_var.'"';
                $data .= "update add ".$sub.".".$domain.". ".$ttl2." IN TXT ".$txt_var."\n"; 

          }

这将转到NSupdate ( data + nsupdate等)被注释掉的dotn跟踪块

这里:

代码语言:javascript
复制
function dns_update ($id_domain,$mydata) {
 global $nsupdate;

 if (domain_exists($id_domain)) {
  $infos = domain_infos($id_domain);
  $domain = $infos['domain'];
  $dnsip = $infos['dnsip'];
  $key = $infos['key'];
  if ($key != '') { $add = ' -y '.$key; }
  $data = "server $dnsip\n";
  $data .= "zone $domain\n";
  $data .= $mydata;
  $data .= "\n";
  $result = `echo "$data" | $nsupdate$add`;
  return $result;

 } else {
  return false;
 }
}

和引用TXT记录发生在

HTML =>输入=> DO => Wirte DB & Function => NSUPDATE

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-10 23:36:12

你需要引号周围的文本数据。如果它包含任何嵌入的引号,则需要转义:

代码语言:javascript
复制
$txt_var = str_replace('"', '\"', $txt_var);
$data .= "update add $sub.$domain. $ttl2 IN TXT \"$txt_var\"\n";

由于此字符串包含双引号,所以您应该在echo语句中使用单引号:

代码语言:javascript
复制
$result = `echo '$data' | $nsupdate$add`;

但是,更好的方法是使用API,而不是通过命令行来实现。请参阅DNS2库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50282776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档