2009年8月

检测搜索引擎是否来过以及google.cn跳转技术

一, 检测搜索引擎是否来过:
关键查看http的信息头里是否有各蜘蛛的标识:下面贴一段网上代码:

function get_naps_bot()
{
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);

if (strpos($useragent, 'googlebot') !== false){
return 'Googlebot';
}
if (strpos($useragent, 'msnbot') !== false){
return 'MSNbot';
}

if (strpos($useragent, 'slurp') !== false){
return 'Yahoobot';
}

if (strpos($useragent, 'baiduspider') !== false){
return 'Baiduspider';
}

if (strpos($useragent, 'sohu-search') !== false){
return 'Sohubot';
}

if (strpos($useragent, 'lycos') !== false){
return 'Lycos';
}

if (strpos($useragent, 'robozilla') !== false){
return 'Robozilla';
}
return false;
}

function nowtime(){
$date=date("Y-m-d.G:i:s");
return $date;
}

$searchbot = get_naps_bot();

if ($searchbot) {
$tlc_thispage = addslashes($_SERVER['HTTP_USER_AGENT']);
$url=$_SERVER['HTTP_REFERER'];
$file="robotlog.txt";
$time=nowtime();
$data=fopen($file,"a");
fwrite($data,"Time:$time robot:$searchbot URL:$tlc_thispage\n");
fclose($data);
}

二, google跳转原理
因为之前用过英文系统,所以早就排除了是按IP分类。找了下,有这么一篇文章。然后自己也做了个测试:

现在Google为了实现本地化及增加google.cn的流量,对中国境内的用户采取了google.com转向的技术,让用户使用google.cn。更有传言,Google在中国将取消google.com服务,这应该不是真的吧!因为gmail,picasaweb,google reader等Google一系列的服务都是在google.com之下。

但是当我们进行直接输入google.com或搜索网页的时候却指向了google.cn,这让人也很不爽。

我试了一种非常简单的方法就可以使google.com不转向,代价则是直接转到英文界面,对英语不好的朋友可能不太合适。

设置如下:打开控制面板——》打开日期、时间、语言和区域设置——》打开——》区域和语言选项,弹出对话框,区域选项下边有选择你懂的语言选项(只要不是中文中国就可以),最后点击应用。

然后,当你在浏览器中再次输入www.google.com的时候就自动转向了你设置语言选项的哪个国家的google主页。由此看来,google.com转向google.cn不是根据IP地址来转向的,而是根据你的操作系统设置的语言来转向的。如果真的是根据IP地址转向,那中国的那些老外们不发疯才怪。
我的测试,正常的中文系统会跳到g.cn,然后自己的程序得到的信息头为:
["HTTP_ACCEPT_LANGUAGE"]=> string(5) "zh-cn"

如果在控制面板改成语言改为法文,google.com然后是google.com,信息头为:
["HTTP_ACCEPT_LANGUAGE"]=> string(2) "fr"

所以对于自己的网站,可以通过这个确定是否跳转了。
然后具于对蜘蛛不是很了解,所以一但确定为蜘蛛就不要乱跳了。担心跳乱了。

转载:IP地址转换成IP Number并得到国家

原理:现在各个国家的IP都有一个IP Begin Number 和一个Ip End Number数字,把国家的开始的数据,各结束的数据都存在数据库

最后通过一个计算公式把真实的IP地址转换成Ip Number,从数据库中找在Begin ,End之间的,如果在这间,就是这个国家的了;

关于各个国家的IP Number这个应该是国标的吧,应该不会变的,在文章的后提供下载;

IP Number计算公式:

IP Number = 16777216*w + 65536*x + 256*y + z (1)
where
IP Address = w.x.y.z

说明:16777216,65536,256;这个数都是系数,就像圆周率3.14一样

w.x.y.z分别对应真实的IP地址,eg:192.168.0.19;link

eg:

IP Address = 202.186.13.4
So, w = 202, x = 186, y = 13 and z = 4
IP Number = 16777216*202 + 65536*186 + 256*13 + 4
= 3388997632 + 12189696 + 3328 + 4
= 3401190660
这样就得到一个Ip Number了,现在我们就可以到我们的数据库去找它对就的IP段,即能得来是哪一个国家
关于从数据库的代码我就不多说了哟
关键是我们要明白原理,找到解决方案的思路;
国标IP范围下载:http://files.cnblogs.com/caodaiming/ip-to-country.zip

转自

YUI css reset

/*
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.7.0
*/
/**
* YUI Reset
* @module reset
* @namespace
* @requires
*/
html {
color: #000;
background: #FFF;
}

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td {
margin: 0;
padding: 0;
}

table {
border-collapse: collapse;
border-spacing: 0;
}

fieldset,img {
border: 0;
}

address,caption,cite,code,dfn,em,strong,th,var,optgroup {
font-style: inherit;
font-weight: inherit;
}

del,ins {
text-decoration: none;
}

li {
list-style: none;
}

caption,th {
text-align: left;
}

h1,h2,h3,h4,h5,h6 {
font-size: 100%;
font-weight: normal;
}

q:before,q:after {
content: '';
}

abbr,acronym {
border: 0;
font-variant: normal;
}

sup {
vertical-align: baseline;
}

sub {
vertical-align: baseline;
}

/*because legend doesn't inherit in IE */
legend {
color: #000;
}

input,button,textarea,select,optgroup,option {
font-family: inherit;
font-size: inherit;
font-style: inherit;
font-weight: inherit;
}

/*@purpose To enable resizing for IE */
/*@branch For IE6-Win, IE7-Win */
input,button,textarea,select {
*font-size: 100%;
}

/***@统一超链接样式 非YUI部份****/
:link, :visited {
text-decoration: none;
}
另外对于中文:
字体大小12px的时候行高是18px,字体大小16px时行高24px。看起来也会比较舒服。

文章摘自: http://shawphy.com/2009/03/my-own-reset-css.html