说明:
Apache虚拟主机配置文件“httpd-vhost.conf”中有很多VirtualHost块,有些VirtualHost的域名可能已经解析到其它地方,这时需要删除相就在的VirtualHost。
以下代码用于检测ServerName所指域名解析是否还是本服务器(不检测ServerAlias,如需要检测请自行修改代码)。
效果:
代码:
<?php header('Content-Type:text/html; charset=UTF-8');?>
<style>
span {
font-size:12px;
}
span.alert {
color:#C00;
}
span.unknown {
color:#F90;
}
span.normal {
color:#390;
}
</style>
<?php
$svrIp = '180.210.206.94'; // 服务器IP
$file = '/Apache2.2/conf/extra/httpd-vhosts.conf'; // 虚拟主机配置文件
$content = file_get_contents($file);
if (preg_match_all('/(ServerName)\s+((.+\.)?(\w+\.?\w+))/', $content, $r)) {
foreach ($r[2] as $dn){
$ip = gethostbynamel($dn); // 获取域名所解析的IP
if (FALSE == $ip){
echo '<span class="unknown">啊喔:'.$dn.' 谁也没好,貌似单身。(解析错误)</span><br />';
}elseif($ip[0] != $svrIp){
echo '<span class="alert">抱歉:'.$dn.' 跟 '.$ip[0].' 好上了</span><br />';
}else{
echo '<span class="normal">恭喜:'.$dn.' 的心还在你('.$ip[0].')这里。</span><br />';
}
}
}
echo 'Done! '.time();
?>
下载:
<完。感谢ramble提供帮助,^_^>
