说明:
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提供帮助,^_^>