关掉sshd开机启动:
更多关于sshd的服务命令:
rpm -qa|grep telnet-server
telnet-server-0.17-64.el7.x86_64
OS:Centos5.4
rpm: http://mirror.centos.org/centos/5/os/i386/CentOS/telnet-server-0.17-39.el5.i386.rpm
setup:
rpm -ihv telnet-server-0.17-39.el5.i386.rpm
[root@linuxchao root]# vi /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no //yes改为no
}
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no //yes改为no
}
telnet限制用户连接数(CentOS)配置方法
编缉/etc/xinetd.d/telnet在大括号内追加:
cps = 100 10
instances = 100
per_source = 30
保存然后使用service xinetd restart重启xinetd即可(连接后的会话与xinetd无关,重启xinetd不会使当前存在的telnet会话断开)。
cps--第一个参数表示每秒处理的连接数,第二个参数表示如果连接数超过第一个参数时暂时停止连接请求的秒数
instances--总的最大连接数,也可赋值为“UNLIMITED”表示不限制(说实话并没有很理解与cps第一个参数的区别是什么)
per_source--单个IP允许的最大连接数
1、开启服务
方法一:使用ntsysv,在出现的窗口之中,将 telnet 勾选起来,然后按下 OK 即可 !
方法二:编辑 /etc/xinetd.d/telnet
[root@linuxchao root]# vi /etc/xinetd.d/telnet
找到 disable = yes<==就是改这里,将 yes 改成 no 即可!服务预设是关闭的
方法三:使用chkconfig命令直接开启
[root@linuxchao root]chkconfig telnet on
2、激活服务
telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然
也就可以被激活。
[root@linuxchao root]# service xinetd restart
或者[root@linuxchao root]# /etc/rc.d/init.d/xinetd restart #这个是比较正规的方法
允许root用户登入,可用下列方法
[root@linuxchao root]# vi /etc/pam.d/login
#auth required pam_securetty.so #将这一行加上注释!
或
# mv /etc/securetty /etc/securetty.bak
这样一来, root 将可以直接进入 Linux 主机。不过,建议不要这样做。还可以在普通用户进入后,切换到root用户,拥有root的权限!
Windows2003 set up telnet server so easy:
先在服务里面启动telnet服务
运行cmd打开命令提示框, 在里面输入命令:
net start telnet 启动telnet服务
net stop telnet 停止telnet服务
本人在xp上亲测成功,看来某些网站上说的windows开启telnet服务必须要server 才可以是不准确的,这其中还包含了一些权限设置的问题就等以后大家有时间的时候自己去摸索了,我没那么多时间研究windows
启动 Telnet 服务
安装 Windows 2000 Server 时 Telnet 服务的启动类型被设为手动。
手动启动 Telnet 服务
您可以使用下面任一方法手动启动 Telnet 服务:
在命令提示符下键入 net start telnet。
单击开始,指向程序,指向管理工具,然后单击 Telnet 服务器管理。在命令提示符下键入 4 启动 Telnet 服务。
单击开始,指向程序,指向管理工具,单击服务,右键单击 Telnet 服务,然后单击启动。
单击开始,指向程序,指向管理工具,单击服务,右键单击 Telnet 服务,单击属性,然后单击启动。
自动启动 Telnet 服务
您可以按如下步骤设置 Telnet 服务让其自动启动:
单击开始,指向程序,指向管理工具,然后单击服务。
右键单击 Telnet 服务,然后单击属性。
在启动类型框中单击自动。
单击确定。
加入telne组织里面(参看下面的才行:宿主机WindowsXP与虚拟机Linux之间Telnet 有图有真相):
授予对 Telnet 服务器的访问权限
若要授予 Telnet 用户对 Telnet 服务器的访问权限,请执行下列过程:
创建 TelnetClients 本地组
将用户添加到 TelnetClients 组
创建 TelnetClients 本地组的步骤
打开本地用户和组管理单元。在“开始搜索”框中,键入 mmclusrmgr.msc。
在导航窗格中,单击“组”。
如果在细节窗格中已存在组 TelnetClients,则跳到下一过程将用户添加到该组。
右键单击“组”,然后单击“新建组”。
在“新建组”对话框中,键入名称 TelnetClients。可以根据需要添加描述。
如果您知道需要向其授予访问权限的用户,可以单击“添加”,然后在“选择用户、计算机或组”对话框中输入用户名。根据需要,可以通过执行下一步稍后添加用户。
单击“创建”。
TelnetClients 组创建后,可以将成员添加到该组中。此组的任何成员都可以访问 Telnet 服务器服务。成员使用 Telnet 连接时可以执行的任务取决于授予服务器计算机上的用户帐户的权限,以及该计算机所承载的资源。
将用户添加到 TelnetClients 组的步骤
打开“本地用户和组”管理单元。在“开始搜索”框中,键入 mmc lusrmgr.msc。
在导航窗格中,单击“组”。
在细节窗格中,右键单击 TelnetClients,然后单击“属性”。
在“TelnetClient 属性”对话框中,单击“添加”。
在“选择用户、计算机或组”对话框中,添加要向其授予访问权限的用户或组。有关如何查找和添加用户或组的信息,请按 F1 键查看“访问控制列表帮助”。
宿主机WindowsXP与虚拟机Linux之间Telnet
首先说明下系统,宿主机是Winxp,ip为192.168.1.18,通过vmware安装了Fedora Linux,ip为192.168.1.252。安装了hamachi(便于与人联机游戏的软件)导致Linux不能上网,在“网络连接”中将其禁用即可。
看教学视频,欲实现二者的互相访问,祭出telnet武器,不料无论是xp还是linux均无法实现telnet。思考片刻拿出解决方案如下(PS:telnet的端口号是23):
1.XP系统开启Telnet服务:在“我的电脑”右键→管理→服务→Telnet,右键选择“属性”,将其打开即可,我设置的是“手动”,然后开启之。
2.Linux开启telnet服务:在“终端”中键入chkconfig telnet on。
3.XP下telnet Linux:“开始”→“运行”→cmd,回车进入命令行模式,键入“telnet 192.168.1.252”回车,输入linux里面的id和password即可。有个疑问:为什么不可以用root登陆呢?登陆后可使用su root转为root登陆,奇怪?找到了解决办法:vi /etc/pam.d/login文件,在 auth required /lib/security/pam_securetty.so 前面加一个#号,注释掉就行了。
4.Linux下telnet XP:打开终端,键入telnet 192.168.1.18,提示我登陆,PS:因为方便朋友用电脑所以机子没设置密码,因telnet不允许空密码所以新增了root用户,组别必须设置成Administrators或者设置新增一个组别TelnetClients并将root加入就可以了,否则会提示:“访问拒绝:指定用户是不是 TelnetClients 组成员。服务器管理员必须将此用户添加到上述组。Telnet 服务器已关闭连接”。微软对其的解释参见:http://support.microsoft.com/kb/298060。完成后即可进行连接。
特别对第四条做了操作,并亲自设置成功,通过:seelinux连接成功,seelinux本来是为linux开发的,但是telnet原理都一样于是也就用了,在csdn上可以下载
telnet的用户和组的设置如下图所示:
修改后可别忘了在root上右键,点击设置密码,把密码设置一次,在telnet,我是这么做的,如果不怎么走好像提示什么:用户首次登录之前必须更改密码!!!
EOF
CentOS服务器配置系列--telnet服务器
这段时间在学CentOS-5.1服务器的相关配置,也会陆续发一些自己的笔记与在实验中遇到的问题及解决方法。
服务器:CentOS-5.1(192.168.1.87)
客户机:FC6(192.168.1.86) Windows XP(192.168.1.88)
虽然telnet的明文传输有很大的安全隐患,而且现在基本上也被SSH来取代了,但是为了学习还是有必要了解一下,好了,进入正题

void send_data( long data)
{
SBUF=data;
while (TI== 0 );
TI= 0 ;
}
data是一个16位数,这个程序发送有问题吗?
这样怎么行啊。SBUF是8位的你发16位的。。。建议你分两次发,首先发高8位,然后发低八位,接收到后吧高8位向左移8位即A<<8。。。B是低8位这样就出来了DATA=A<<8|B.
有问题 SBUF寄存器是8位的 分2次才可以
一般来说你何必要这么发送呢,采用一个char型的8位数不是更好吗?
但是不一定出错,很多单片机都提供了促发传送的功能,也就是说,有一个FIFO队列,你可以一次写入2个或4个字节,这样的话就可以提高传送的效率和速度了,现在的单片机一般都带这个功能,所以说对于错很麻烦,光看这点东西是不行的
相当有问题,这么一来data的高8位被自动截掉了,确实得要分两次 ,如:对于1000,0XE8---低8位,0X03---高8位!
U8 a,b;
U16 c;
a = c|0x00ff;
c >>= 8;
b = c|0x00ff;

00000011 :高位 十六进制:3 十进制:3
11111101 :地位 十六进制:FD 十进制:253
十六进制的高位+十六进制的低位 = 3FD ===》转为:十进制等于:1021
1021/2047*70-10 = 24.91450903度
temp_value_height = ((temp_value >> 8) & 0xff) &0x7;
解释:
回忆未来(372647693) 19:09:29
我学php的。哈哈
石涛(47957728) 19:09:36
temp_value >> 8, 将高八位移位到低八位
回忆未来(372647693) 19:09:50
那低八位到哪儿去了?
石涛(47957728) 19:09:59
那个你就不用管了
石涛(47957728) 19:10:03
因为你不需要
回忆未来(372647693) 19:10:10
嗯,然后呢?
回忆未来(372647693) 19:10:30
& 0xff ??
石涛(47957728) 19:10:31
& 0xff是将现在的数值的高8位清0
石涛(47957728) 19:11:01
& 0x7,就是取现在的数的低3位
回忆未来(372647693) 19:11:03
也就是刚才高八位移到低8位后高还是有东西的?
石涛(47957728) 19:11:56
因为移位之后是将原来的24~16位的移位到8~15了
石涛(47957728) 19:12:18
如果你的temp_value是个32位数的话
http://zhidao.baidu.com/question/110038192.html
{
SBUF=data;
while (TI== 0 );
TI= 0 ;
}
data是一个16位数,这个程序发送有问题吗?
这样怎么行啊。SBUF是8位的你发16位的。。。建议你分两次发,首先发高8位,然后发低八位,接收到后吧高8位向左移8位即A<<8。。。B是低8位这样就出来了DATA=A<<8|B.
有问题 SBUF寄存器是8位的 分2次才可以
一般来说你何必要这么发送呢,采用一个char型的8位数不是更好吗?
但是不一定出错,很多单片机都提供了促发传送的功能,也就是说,有一个FIFO队列,你可以一次写入2个或4个字节,这样的话就可以提高传送的效率和速度了,现在的单片机一般都带这个功能,所以说对于错很麻烦,光看这点东西是不行的
相当有问题,这么一来data的高8位被自动截掉了,确实得要分两次 ,如:对于1000,0XE8---低8位,0X03---高8位!
U8 a,b;
U16 c;
a = c|0x00ff;
c >>= 8;
b = c|0x00ff;
00000011 :高位 十六进制:3 十进制:3
11111101 :地位 十六进制:FD 十进制:253
十六进制的高位+十六进制的低位 = 3FD ===》转为:十进制等于:1021
1021/2047*70-10 = 24.91450903度
temp_value_height = ((temp_value >> 8) & 0xff) &0x7;
解释:
回忆未来(372647693) 19:09:29
我学php的。哈哈
石涛(47957728) 19:09:36
temp_value >> 8, 将高八位移位到低八位
回忆未来(372647693) 19:09:50
那低八位到哪儿去了?
石涛(47957728) 19:09:59
那个你就不用管了
石涛(47957728) 19:10:03
因为你不需要
回忆未来(372647693) 19:10:10
嗯,然后呢?
回忆未来(372647693) 19:10:30
& 0xff ??
石涛(47957728) 19:10:31
& 0xff是将现在的数值的高8位清0
石涛(47957728) 19:11:01
& 0x7,就是取现在的数的低3位
回忆未来(372647693) 19:11:03
也就是刚才高八位移到低8位后高还是有东西的?
石涛(47957728) 19:11:56
因为移位之后是将原来的24~16位的移位到8~15了
石涛(47957728) 19:12:18
如果你的temp_value是个32位数的话
http://zhidao.baidu.com/question/110038192.html
36转十六进制是多少?
验算怎么验?全要过程?
36 除以 16 等于 2 余 4
故 24H
验算过程
2乘以16的一次方 加上 4乘以16的0次方 等于 36.
验算怎么验?全要过程?
36 除以 16 等于 2 余 4
故 24H
验算过程
2乘以16的一次方 加上 4乘以16的0次方 等于 36.
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信
一、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
一、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
提示某个位置的xml文件有问题,到目录下一看:
C:\Documents and Settings\jackxiang\Application Data\Adobe\Dreamweaver CS4\zh_CN\Configuration\Workspace
重新命名:
Designer Compact.xml
新名字:
Designer Compact.xml.bak
然后,重新绿化了下,相当于把那个文件给重新生成了一次,再打开,O了!
C:\Documents and Settings\jackxiang\Application Data\Adobe\Dreamweaver CS4\zh_CN\Configuration\Workspace
重新命名:
Designer Compact.xml
新名字:
Designer Compact.xml.bak
然后,重新绿化了下,相当于把那个文件给重新生成了一次,再打开,O了!
#ZendStudio# 太重, #Editplus# 太丑, #Notepad++# 不支持sftp, #sublime# 没有PHP代码补全; #Textmate# 不能正常显示中文, #Espresso# 远程写文件错误没有反馈, #coda# 不能折叠代码.这个世界就不能有一个完美点的编辑器么 ..
语法:
const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"
const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"
linux 串口读取数据被截断,怎样一次全部接收?
阅读全文

原创 端口扫描程序实现原理 收藏
以前看过很多网络相关方面的程式源码, 但时间长了都忘了怎么实现的了, 因此,想将以后看过的源码实现方式记录下来, 以免下次再得找资源!
其实端口扫描程式的原理很简单, 利用socket连接指定IP的端口, 根据其返回值就可以得知目标机器是否开启了这个端口,
实现步骤如下:
1. 创建socket
c_socket = socket ( AF_INET, SOCK_STREAM, 0 );
if ( c_socket == SOCKET_ERROR )
{
printf (" create socket fault!\n ");
return -1;
}
2. 连接目示机器
struct sockaddr_in remoteaddr;
struct hostent* remotehost;
remoteaddr.sin_family = AF_INET;
remoteaddr.sin_addr.s_addr = inet_addr ( Address );
remoteaddr.sin_port = htons ( cPort );
//连接
if ( connect ( c_socket, (SOCKADDR*) &remoteaddr, sizeof ( struct sockaddr_in ) ) == SOCKET_ERROR )
{
printf ("< %3d > connect port %5d ...\n",ThreadID,cPort ) ;
closesocket( c_socket);
return -1;
}
closesocket( c_socket);
printf ("< %3d > connect port %5d succeed\n",ThreadID,cPort ) ;
也可以利用多线程技术实现, 只要给每个线程分配好指定的扫描端口段就可以了
来源:
http://blog.csdn.net/study_live/archive/2009/09/28/4604673.aspx
以前看过很多网络相关方面的程式源码, 但时间长了都忘了怎么实现的了, 因此,想将以后看过的源码实现方式记录下来, 以免下次再得找资源!
其实端口扫描程式的原理很简单, 利用socket连接指定IP的端口, 根据其返回值就可以得知目标机器是否开启了这个端口,
实现步骤如下:
1. 创建socket
c_socket = socket ( AF_INET, SOCK_STREAM, 0 );
if ( c_socket == SOCKET_ERROR )
{
printf (" create socket fault!\n ");
return -1;
}
2. 连接目示机器
struct sockaddr_in remoteaddr;
struct hostent* remotehost;
remoteaddr.sin_family = AF_INET;
remoteaddr.sin_addr.s_addr = inet_addr ( Address );
remoteaddr.sin_port = htons ( cPort );
//连接
if ( connect ( c_socket, (SOCKADDR*) &remoteaddr, sizeof ( struct sockaddr_in ) ) == SOCKET_ERROR )
{
printf ("< %3d > connect port %5d ...\n",ThreadID,cPort ) ;
closesocket( c_socket);
return -1;
}
closesocket( c_socket);
printf ("< %3d > connect port %5d succeed\n",ThreadID,cPort ) ;
也可以利用多线程技术实现, 只要给每个线程分配好指定的扫描端口段就可以了
来源:
http://blog.csdn.net/study_live/archive/2009/09/28/4604673.aspx
RSA算法是一种基于公钥和私钥的加密算法, 是由Ronald Rivest, Adi Shamir和Len Adleman三人在Diffie-Helman指数密钥交换算法的
基础上于1977年设计出来的,Rivest设计的加密系统利用了数学领域的一个事实,那就是虽然把两个大素数相乘生成一个合数是件很容易
的事, 但要把一个合数分解为两个素数却十分困难。
RSA的安全性依赖于大数分解,公钥和密钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度
等同于分解两个大素数之积。
密钥对的产生,选对两个大素数p和q,计算
n=p*q
然后随机选择加密密钥e, 要求e和(p-1)*(q-1)互质,最后,利用Euclid算法计算解密密钥d,满足
(e*d) mod ((p-1)*(q-1))=1
其中n和d也要互质, 数e和n是公钥,d是私钥.现在两个素数p和q可以丢弃不再需要,不要让任何人知道.
加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2....mi,块长s,其中2^s<=n, s尽可能地大.对应的密文是:
ci=mi^e (mod n) (a)
解密时作如下计算:
mi=ci^d (mod n) (b)
RSA可用于数字签名,方案是用(a)式签名,(b)式验证.具体操作时考虑到安全性和m信息量较大等因素,一般先作hash运算.
RSA算法示例:
(1) 选择两个素数:p=7, q=17
(2) 计算n=p*q=7*17=119
(3) 计算φ(n)=(p-1)*(q-1)=96
(4) 选择e,e为φ(n)=96的相对素数,要比φ(n)小,本例中e=5
(5) 决定d,使(d*e) mod 96=1,且d<96,正确值为d=77,因为77*5=385=4*96+1.
结果密钥为公钥KU={5, 119}和私钥KR={77, 119}
如输入明文M=19,使用以上密钥加密:
ci=M^e (mod n)
=19^5 mod 119
=2476099 mod 119
=66
解密由66^77 mod 119=19决定.
《黑客防线---口令破解与加密技术》笔记
来源:http://blog.csdn.net/study_live/archive/2009/12/19/5038828.aspx
i386,i586,i686几个概念之区分
这几个数据希望能结合rpm包名称考虑,不然会失去有些文字的表达意义。
i386—几乎所有的x86平台,不论是旧的pentium或者是新的pentium-iv与k7系统cpu,都可以正常工作,i指得是intel兼容的cpu,至于386就是cpu的等级。
i586—就是586等级的计算机,包括pentium第一代mmx cpu,amd的k5,k6系统cpu(socket7插脚)等cpu都是这个等级。
i686—pentium 2 以后的intel系统cpu及k7以后等级的cpu都属于这个686等级。
noarch—代表跟硬件体系结构无关。不管是 x86、powerpc,sparc 或者 alpha 系统。
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17826846.html
这几个数据希望能结合rpm包名称考虑,不然会失去有些文字的表达意义。
i386—几乎所有的x86平台,不论是旧的pentium或者是新的pentium-iv与k7系统cpu,都可以正常工作,i指得是intel兼容的cpu,至于386就是cpu的等级。
i586—就是586等级的计算机,包括pentium第一代mmx cpu,amd的k5,k6系统cpu(socket7插脚)等cpu都是这个等级。
i686—pentium 2 以后的intel系统cpu及k7以后等级的cpu都属于这个686等级。
noarch—代表跟硬件体系结构无关。不管是 x86、powerpc,sparc 或者 alpha 系统。
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17826846.html
/usr/ports/misc/cpuid下:
sudo make install clean
后,安装成功后,如何删除此软件呢?因为并没有看到温度。
cd /usr/ports/misc/cpuid
sudo make deinstall
安装Ports成功步骤:
portsnap fetch update. #https://blog.csdn.net/richardfjf/article/details/106961150
You must run 'portsnap extract' before running 'portsnap update'.
/usr/ports/x11/yeahconsole/
mkdir: /usr/ports/x11: No space left on device
tar: could not chdir to '/usr/ports/x11/yeahconsole/'
1、如何只抓取 tarball?
阅读全文
sudo make install clean
后,安装成功后,如何删除此软件呢?因为并没有看到温度。
cd /usr/ports/misc/cpuid
sudo make deinstall
安装Ports成功步骤:
portsnap fetch update. #https://blog.csdn.net/richardfjf/article/details/106961150
You must run 'portsnap extract' before running 'portsnap update'.
/usr/ports/x11/yeahconsole/
mkdir: /usr/ports/x11: No space left on device
tar: could not chdir to '/usr/ports/x11/yeahconsole/'
1、如何只抓取 tarball?

Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略……
加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动的地球上不停地闪动着五颜六色的光点,恍如罗马宫廷的千万烛灯,每一次闪动标志着地球的这个角落一名Google用户发起了一次新的搜索。
这同时意味着Google又一次满足了人们对未知信息的好奇与渴望。
阅读全文
加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动的地球上不停地闪动着五颜六色的光点,恍如罗马宫廷的千万烛灯,每一次闪动标志着地球的这个角落一名Google用户发起了一次新的搜索。
这同时意味着Google又一次满足了人们对未知信息的好奇与渴望。
