Una alternativa más corta a la respuesta de mattbianco con menos herramientas, pero usando pcregrep podría ser:
$ dig -x 194.68.208.240 | pcregrep -o1 '^;(\S+)\s+IN\s+PTR$'
240.208.68.194.in-addr.arpa.
$ dig -x 2001:db8:dc61:2a61::1 | pcregrep -o1 '^;(\S+)\s+IN\s+PTR$'
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.6.a.2.1.6.c.d.8.b.d.0.1.0.0.2.ip6.arpa.
Похоже, вы путаете записи DNS A и виртуальные хосты Apache. Они работают на совершенно разных уровнях и на самом деле не взаимозаменяемы.
Для Apache, когда вы назначаете строфу <VirtualHost>
, вы сообщаете apache, что делать, когда он получает запросы на любой из ServerName
s в этой строфе. Однако до тех пор, пока эти имена не будут указывать на ваш сервер в DNS, никто из внешнего мира никогда не запросит их у вашего сервера, поэтому вам нужны оба.
(Да, я знаю, что пропускаю здесь подстановочные знаки, я пытаюсь сделать это простым для тех, кто явно плохо знаком с DNS и веб-хостингом)
Приведем пример. :Скажем, у вас есть запись A, указывающая www.foo.com
на ваш сервер по адресу 1.2.3.4
. И у вас есть следующая VirtualHost
строфа:
<VirtualHost *:80>
ServerName www.foo.com
DocumentRoot /var/www/html
-- etcetera ---
</VirtualHost>
Это сообщает вашему серверу Apache, что любые контакты на порту 80, запрашивающие www.foo.com, должны обрабатываться в соответствии с инструкциями в этом разделе.
Теперь предположим, что вы добавили субдомен:
<VirtualHost *:80>
ServerName sub.foo.com
ServerAlias sub2.foo.com
DocumentRoot /var/www/subdomain/html
--- etc ---
</VirtualHost>
Теперь вы сообщили своему серверу Apache, как отвечать на запросы sub.foo.com
и sub2.foo.com
. Однако до тех пор, пока вы не добавите запись A, указывающую sub.foo.com
на 1.2.3.4
, никто не узнает, на , что запросит у вашего сервера этот домен.
Нет. Вам нужна другая запись A, указывающая на тот же (или другой )IP-адрес, или запись CNAME, указывающая на ваш существующий домен.