本站「恢复」域名解析

作者:Matrix 被围观: 579 次 发布时间:2013-09-19 分类:兼容并蓄 零零星星 | 3 条评论 »

NOTICE:这是一个创建于 1173 天前的主题,其中的信息可能已经有所发展或是发生改变。

自从本站准备暂时停止域名解析 的2013年08月13日开始到昨天9-18 10:38.   😀 被安通过了。工信部短信通知的,后来也有email。  哈哈

硬是感谢各位相关人员~

这一个月的时间真恼火。期间找了俩关于不关站的办法:

10-15添加第三种更靠谱的方法

1.靠谱的就是使用DNSPOD的功能:修改线路类型

 

到域名列表里找到线路类型选择“搜索引擎”,这样蜘蛛照样可以正常访问,比起停止域名解析来好得多。

本站收录本来就那一点点,感觉影响不大。

2.不靠谱的就是识别来访者IP地址实现自动屏蔽省级IP段。

这样的话还是有些作用,但不能保证人家看不到你的网站。

so, 不咋靠谱。

在index.php中适当位置添加相关代码:

  1. <?  
  2. function convertip($ip) {  
  3. //IP数据文件路径  
  4. $dat_path = 'ip2.dat';  
  5.   
  6. //检查IP地址  
  7. if(!ereg("^([0-9]{1,3}.){3}[0-9]{1,3}$"$ip)){  
  8. return 'IP Address Error';  
  9. }  
  10.   
  11. //打开IP数据文件  
  12. if(!$fd = @fopen($dat_path, 'rb')){  
  13. return 'IP date file not exists or access denied';  
  14. }  
  15.   
  16. //分解IP进行运算,得出整形数  
  17. $ip = explode('.'$ip);  
  18. $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];  
  19.   
  20. //获取IP数据索引开始和结束位置  
  21. $DataBegin = fread($fd, 4);  
  22. $DataEnd = fread($fd, 4);  
  23. $ipbegin = implode('', unpack('L', $DataBegin));  
  24. if($ipbegin < 0) $ipbegin += pow(2, 32);  
  25. $ipend = implode('', unpack('L', $DataEnd));  
  26. if($ipend < 0) $ipend += pow(2, 32);  
  27. $ipAllNum = ($ipend - $ipbegin) / 7 + 1;  
  28.   
  29. $BeginNum = 0;  
  30. $EndNum = $ipAllNum;  
  31.   
  32. //使用二分查找法从索引记录中搜索匹配的IP记录  
  33. while($ip1num>$ipNum || $ip2num<$ipNum) {  
  34. $Middleintval(($EndNum + $BeginNum) / 2);  
  35.   
  36. //偏移指针到索引位置读取4个字节  
  37. fseek($fd$ipbegin + 7 * $Middle);  
  38. $ipData1 = fread($fd, 4);  
  39. if(strlen($ipData1) < 4) {  
  40. fclose($fd);  
  41. return 'System Error';  
  42. }  
  43. //提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂  
  44. $ip1num = implode('', unpack('L', $ipData1));  
  45. if($ip1num < 0) $ip1num += pow(2, 32);  
  46.   
  47. //提取的长整型数大于我们IP地址则修改结束位置进行下一次循环  
  48. if($ip1num > $ipNum) {  
  49. $EndNum = $Middle;  
  50. continue;  
  51. }  
  52.   
  53. //取完上一个索引后取下一个索引  
  54. $DataSeek = fread($fd, 3);  
  55. if(strlen($DataSeek) < 3) {  
  56. fclose($fd);  
  57. return 'System Error';  
  58. }  
  59. $DataSeek = implode('', unpack('L', $DataSeek.chr(0)));  
  60. fseek($fd$DataSeek);  
  61. $ipData2 = fread($fd, 4);  
  62. if(strlen($ipData2) < 4) {  
  63. fclose($fd);  
  64. return 'System Error';  
  65. }  
  66. $ip2num = implode('', unpack('L', $ipData2));  
  67. if($ip2num < 0) $ip2num += pow(2, 32);  
  68.   
  69. //没找到提示未知  
  70. if($ip2num < $ipNum) {  
  71. if($Middle == $BeginNum) {  
  72. fclose($fd);  
  73. return 'Unknown';  
  74. }  
  75. $BeginNum = $Middle;  
  76. }  
  77. }  
  78.   
  79. //下面的代码读晕了,没读明白,有兴趣的慢慢读  
  80. $ipFlag = fread($fd, 1);  
  81. if($ipFlag == chr(1)) {  
  82. $ipSeek = fread($fd, 3);  
  83. if(strlen($ipSeek) < 3) {  
  84. fclose($fd);  
  85. return 'System Error';  
  86. }  
  87. $ipSeek = implode('', unpack('L', $ipSeek.chr(0)));  
  88. fseek($fd$ipSeek);  
  89. $ipFlag = fread($fd, 1);  
  90. }  
  91.   
  92. if($ipFlag == chr(2)) {  
  93. $AddrSeek = fread($fd, 3);  
  94. if(strlen($AddrSeek) < 3) {  
  95. fclose($fd);  
  96. return 'System Error';  
  97. }  
  98. $ipFlag = fread($fd, 1);  
  99. if($ipFlag == chr(2)) {  
  100. $AddrSeek2 = fread($fd, 3);  
  101. if(strlen($AddrSeek2) < 3) {  
  102. fclose($fd);  
  103. return 'System Error';  
  104. }  
  105. $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));  
  106. fseek($fd$AddrSeek2);  
  107. else {  
  108. fseek($fd, -1, SEEK_CUR);  
  109. }  
  110.   
  111. while(($char = fread($fd, 1)) != chr(0))  
  112. $ipAddr2 .= $char;  
  113.   
  114. $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));  
  115. fseek($fd$AddrSeek);  
  116.   
  117. while(($char = fread($fd, 1)) != chr(0))  
  118. $ipAddr1 .= $char;  
  119. else {  
  120. fseek($fd, -1, SEEK_CUR);  
  121. while(($char = fread($fd, 1)) != chr(0))  
  122. $ipAddr1 .= $char;  
  123.   
  124. $ipFlag = fread($fd, 1);  
  125. if($ipFlag == chr(2)) {  
  126. $AddrSeek2 = fread($fd, 3);  
  127. if(strlen($AddrSeek2) < 3) {  
  128. fclose($fd);  
  129. return 'System Error';  
  130. }  
  131. $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));  
  132. fseek($fd$AddrSeek2);  
  133. else {  
  134. fseek($fd, -1, SEEK_CUR);  
  135. }  
  136. while(($char = fread($fd, 1)) != chr(0)){  
  137. $ipAddr2 .= $char;  
  138. }  
  139. }  
  140. fclose($fd);  
  141.   
  142. //最后做相应的替换操作后返回结果  
  143. if(preg_match('/http/i', $ipAddr2)) {  
  144. $ipAddr2 = '';  
  145. }  
  146. $ipaddr = "$ipAddr1 $ipAddr2";  
  147. $ipaddr = preg_replace('/CZ88.Net/is', ''$ipaddr);  
  148. $ipaddr = preg_replace('/^s*/is', ''$ipaddr);  
  149. $ipaddr = preg_replace('/s*$/is', ''$ipaddr);  
  150. if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {  
  151. $ipaddr = 'Unknown';  
  152. }  
  153.   
  154. return $ipaddr;  
  155. }  
  156.   
  157. function findstr($str$substr)   
  158. {   
  159. $m = strlen($str);   
  160. $n = strlen($substr );   
  161. if ($m < $nreturn false ;   
  162. for ($i=0; $i <=($m-$n+1); $i ++){   
  163. $sub = substr$str$i$n);   
  164. if ( strcmp($sub$substr) == 0) return true;   
  165. }   
  166. return false ;   
  167. }   
  168. ?>   
  169.   
  170. <?   
  171. $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];  
  172. $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];   
  173. $ClientCity=convertip($user_IP); //获得所在城市字符串  
  174. $ClientCity = iconv("gb2312","utf-8",$ClientCity);  
  175. $flag = false;  
  176. $tmp = $_SERVER['HTTP_USER_AGENT'];  
  177. if(strpos($tmp, 'Googlebot') !== false){  
  178. $flag = true;  
  179. else if(strpos($tmp, 'Baiduspider') >0){  
  180. $flag = true;  
  181. else if(strpos($tmp, 'Yahoo! Slurp') !== false){  
  182. $flag = true;  
  183. else if(strpos($tmp, 'msnbot') !== false){  
  184. $flag = true;  
  185. else if(strpos($tmp, 'Sosospider') !== false){  
  186. $flag = true;  
  187. else if(strpos($tmp, 'YodaoBot') !== false || strpos($tmp, 'OutfoxBot') !== false){  
  188. $flag = true;  
  189. else if(strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false){  
  190. $flag = true;  
  191. else if(strpos($tmp, 'fast-webcrawler') !== false){  
  192. $flag = true;  
  193. else if(strpos($tmp, 'Gaisbot') !== false){  
  194. $flag = true;  
  195. else if(strpos($tmp, 'ia_archiver') !== false){  
  196. $flag = true;  
  197. else if(strpos($tmp, 'altavista') !== false){  
  198. $flag = true;  
  199. else if(strpos($tmp, 'lycos_spider') !== false){  
  200. $flag = true;  
  201. else if(strpos($tmp, 'Inktomi slurp') !== false){  
  202. $flag = true;  
  203. }  
  204.   
  205. //echo $ClientCity;  
  206. $b='四川'; //这里填写要屏蔽的地区  
  207. if (findstr($ClientCity,$b)){   
  208. if($flag){ //这里是让蜘蛛过去  
  209. echo "<script>location.href='http://www.baidu.com/';</script>";  
  210. }else{  
  211.   
  212. }  
  213.   
  214. }else{   
  215. echo "<script>location.href='http://www.hhtjim.com/indexY.php';</script>";  
  216. }   
  217. ?>  

参考:http://www.discuz.net/forum.php?mod=viewthread&tid=2712504

3.来自某Q群的代码。亲测成功!最简洁,也就几行js代码就可实现。

屏蔽成都全地区:

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  2. <script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>  
  3. <script type="text/javascript">  
  4. var t = remote_ip_info;  
  5. if( t.city == '成都' ){  
  6. window.location.href='http://www.hhtjim.com';  
  7. }  
  8. </script>  

说明:

第5行填写需要屏蔽的城市

弊端就是只能屏蔽城市的IP段,屏蔽省份的话需要相应修改。

屏蔽四川全省:

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  2. <script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>  
  3. <script type="text/javascript">  
  4. var t = remote_ip_info;  
  5. if( t.province == '四川' ){  
  6. window.location.href='http://www.hhtjim.com';  
  7. }  
  8. </script>  

说明:

第5行填写需要屏蔽的省份,这里就解决了上面不能屏蔽省份的弊端。

自己完全可以DIY,如果需要屏蔽中国地区

第5行改为if( t.country == '中国' ){

 

屏蔽来自联通的IP

第5行改为if( t.isp == '联通' ){

本文固定链接:http://www.hhtjim.com/the-restore-dns.html
Matrix
本文章由 Matrix 于2013年09月19日发布在兼容并蓄, 零零星星分类下,目前没有通告,你可以至底部留下评论。
转载请注明:本站「恢复」域名解析-HHTjim'S 部落格
关键字:, ,

有3 条评论 »

  1. 神父 神父 2013-9-23 18:47:45 +0800#1

    原来是被.案去了啊

    • Matrix Matrix Moderator 2013-9-24 0:38:35 +0800

      恩恩 现在用的电信vps 速度还好吧。 :mrgreen:

    • Matrix Matrix Moderator 2013-10-6 20:28:13 +0800

      神父 不要走。。。 小伙伴求友链!!!!

添加新评论 »

 😛 Sad 忧伤 👿 Smile 笑脸 😳 😀 😯 😮 😕 😎 😆 😡 😈 Roll Eyes 转眼珠 😉 💡 😐 😥 Mr Green 绿脸先生

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!