PHP检查主机名是否解析为本地计算机
我想使用PHP检查指定的主机名是否解析为运行PHP脚本的服务器。通过主机名,我的意思是在我的特定上下文中与域名相同 比如说,我有一台服务器,它的公共IP地址是123.123.123.123或类似的东西。我的DNS服务器正在将两个域解析到此IP地址:domain1.com和domain2.com。我正在通过domain1.com访问服务器上的PHP页面,但我希望脚本告诉我domain2.com是否正在解析到服务器,并返回一个适当的结果,如回显“是”或“否” 我不知道该怎么做。我在考虑两种可能性:PHP检查主机名是否解析为本地计算机,php,server,ping,hostname,resolve,Php,Server,Ping,Hostname,Resolve,我想使用PHP检查指定的主机名是否解析为运行PHP脚本的服务器。通过主机名,我的意思是在我的特定上下文中与域名相同 比如说,我有一台服务器,它的公共IP地址是123.123.123.123或类似的东西。我的DNS服务器正在将两个域解析到此IP地址:domain1.com和domain2.com。我正在通过domain1.com访问服务器上的PHP页面,但我希望脚本告诉我domain2.com是否正在解析到服务器,并返回一个适当的结果,如回显“是”或“否” 我不知道该怎么做。我在考虑两种可能性:
function host_resolves($host){
// get server public IP
// check if hostname is a valid domain name
// try to connect to the hostname's DNS server
// query the DNS server and compare IP (maybe in A record?) to public IP
// split off a sub-domain and check for a CNAME if needed
}
if(host_resolves('domain2.com')){
echo 'yep!';
}
else{
echo 'nup :(';
}
没有可靠的方法来进行此检查。例如,具有多个域的服务器可能对每个域具有不同的IP地址(具有多个地址的服务器),或者服务器可能只有一个私有IP地址,并且位于具有公共地址的防火墙或负载平衡器后面。