我正在使用Linux CentOS 6.64和BIND 10.1.2
我在主DNS(example.com)
中有一个额外的区域(list.example.com)绑定(命名)配置文件/etc/named.conf包含区域:
zone "list.example.com" IN {
type master;
file "list-example-com.zone";
allow-query { localhost; };
allow-transfer { 127.0.0.1; };
};
区域文件list-example-com.zone如下:
$TTL 86400 ; 1 day
@ IN SOA ns1.example.com. hostmaster.example.com. (
2004032201 ; serial
7200 ; refresh (2 hours)
5400 ; retry (1.5 hours)
1814400 ; expire (3 weeks)
86400 ; minimum (1 day)
)
IN NS ns1.example.com.
;
IN A 192.168.177.22
;
; -----------------------------------------------------------------
49.30.22.66 IN A 127.0.0.3
44.63.20.10 IN A 127.0.0.2
64.42.10.5 IN A 127.0.0.2
14.3.6.8 IN A 127.0.0.3
// AND OTHER 1000S OF RECORDS LIKE THAT!
我们选择一个重新编码的IP作为示例
IP 44.63.20.10的“DNS查询”将是:
44.63.20.10.list.example.com并将从DNS返回127.0.0.2
好的,现在我要做的是,而不是列出1000条IP记录,我只是想在named.conf,zone文件或任何其他文件中运行PHP文件来执行某些代码并返回127.0.0.2为“A” DNS“IP 44.63.20.10
myfile.php:
<?php
// Just need to get the required IP (44.63.20.10) and the DNS_TYPE of the request (A, TXT,...ect) then:
// Execute some PHP codes to do some stuff (including connect to mysql database..ect)
// If the IP is TRUE, then return: (44.63.20.10 IN DNS_TYPE X)
?>
我希望你能清楚。
我有自己的PHP文件,只需要知道是否可以这样做?如果是,那怎么样? 好吗?
感谢。
答案 0 :(得分:3)
对于绑定,据我所知,这是不可能的。
我建议的解决方案是使用powerDNS。
PowerDNS更灵活,并且能够使用数据库。我正在使用MySQL数据库。例如 也许这就是你想要的,也许不是。但是,由于使用数据库的灵活性,您可以创建一个PHP脚本,在数据库中插入所有内容,并对其进行检查,等等。
答案 1 :(得分:3)
你必须使用BIND Full功能API,它允许&#39;插件&#39;替换BIND的内部数据库函数用于指定区域和BIND。
您需要编辑BIND源文件和makefile.in,然后重新构建BIND,包括源文件和头文件。
要从API开始,找到位于目录bind-release / lib / dns / include / dns / db.h中的文件db.h,其中bind-release应替换为您所在的位置和版本号解压缩源分发例如/usr/src/bind/10.1.2
答案 2 :(得分:2)
如果必须使用.controller('categoriesController', function($scope, myCategories){
$scope.categories = JSON.parse(myCategories);
})
,那么以下解决方案应该可以使用。