<?xml version="1.0" encoding="GB2312"?> 
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en"> 
<title><![CDATA[harrymao]]></title>
<link rel="alternate" type="text/html" href="http://harrymao.bokee.com/index.html" /> 
<modified>2006-02-24T21:11:19Z</modified> 
<tagline type="text/html" mode="escaped"><![CDATA[欢迎访问harrymao的博客]]></tagline> 
<generator url="http://www.blogdriver.com/" version="2.0">BlogDriver</generator> 
<copyright>Copyright (c) 2004, harrymao</copyright> 

<entry> 
<title><![CDATA[Oracle iAS：Oracle Internet应用服务器]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/4531433.html" />  
<issued>2006-02-24T21:11:18Z</issued> 
<created>2006-02-24T21:11:18Z</created> 
<modified>2006-02-24T21:11:18Z</modified>
<id>tag:harrymao.blogchina.com,2006://4531433</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>学习</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="FONT-SIZE: 14pt; COLOR: red"><font face="Times New Roman">Oracle iAS</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 14pt; COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span></b><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="FONT-SIZE: 14pt; COLOR: red"><font face="Times New Roman">Oracle Internet</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 14pt; COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用服务器</span></b><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="FONT-SIZE: 14pt; COLOR: red"><p /></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">从软件的角度来讲，数据库作为除了操作系统之外的底层基础，其性能好坏对应用的影响是非常大的。</span><span lang="EN-US"><font face="Times New Roman">Oracle8i </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">是大家共知的数据库软件，它与</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="COLOR: red"><font face="Times New Roman"> Oracle Internet</font></span></b><b style="mso-bidi-font-weight: normal"><span style="COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">应用服务器（</span><span lang="EN-US" style="COLOR: red"><font face="Times New Roman">Oracle iAS</font></span></b><b style="mso-bidi-font-weight: normal"><span style="COLOR: red; FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">）</span></b><font face="Times New Roman"> </font><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">和</span><span lang="EN-US"><font face="Times New Roman">Oracle Internet </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">开发者套件共同构成了</span><span lang="EN-US"><font face="Times New Roman">Oracle Internet</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">平台，该平台具有完整、简单、可靠、低成本等特点，能够帮助用户把数据管理、应用配置和开发等主要方面集中在一个平台上，能够有效地减少构建</span><span lang="EN-US"><font face="Times New Roman">IT</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">基础结构的成本和复杂性。</span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3">&amp;nbsp;</font></p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">Oracle iAS</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不仅是一个强有力的应用服务器，提供</span><span lang="EN-US"><font face="Times New Roman">Web/HTTP</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、门户、文件管理、集成和系统管理等多种应用服务，由于它与</span><span lang="EN-US"><font face="Times New Roman">Oracle8i </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有着紧密的联系，并与之具有相同的</span><span lang="EN-US"><font face="Times New Roman">Java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持架构，从而允许开发者方便地建立具有足够可伸缩性的业务应用，并从一个管理控制台高效率地管理</span><span lang="EN-US"><font face="Times New Roman">Oracle8i</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US"><font face="Times New Roman">Oracle iAS</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US"><font face="Times New Roman">Oracle</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">电子商务套件。</span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3">&amp;nbsp;</font></p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">Oracle Internet</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">开发者套件包括了</span><span lang="EN-US"><font face="Times New Roman">Oracle</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">开发工具比如</span><span lang="EN-US"><font face="Times New Roman">WebDB</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">、</span><span lang="EN-US"><font face="Times New Roman">Oracle Reports</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">、</span><span lang="EN-US"><font face="Times New Roman">Oracle Discoverer</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">、</span><span lang="EN-US"><font face="Times New Roman">Oracle Developer</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">和</span><span lang="EN-US"><font face="Times New Roman"> Jdeveloper</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">所提供的功能，提供了开发电子商务应用所需要的工具，其中包括企业门户开发工具、基于</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">的报告生成器、基于</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">的</span><span lang="EN-US"><font face="Times New Roman">OLAP</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">工具、基于</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">的格式设计工具、</span><span lang="EN-US"><font face="Times New Roman">Java</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"">部署环境和设计工具，这些丰富的开发工具简化了开发者选购开发工具和构建应用系统的过程。</span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3">&amp;nbsp;</font></p></span></p>]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[最佳的75个安全工具]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/4022894.html" />  
<issued>2005-12-28T10:01:08Z</issued> 
<created>2005-12-28T10:01:08Z</created> 
<modified>2005-12-28T10:01:08Z</modified>
<id>tag:harrymao.blogchina.com,2005://4022894</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>学习</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[最佳的75个安全工具 <br />由于只有介绍，所以就不贴到工具版了。而来源的文章在结尾处的URL没有处理好，所以我也就花了几分钟修复了一下。<br /><br />信息来源：猪头党乐园<br /><br />因为是在nmap-hackers邮件列表中做出的评选，因此没有把nmap安全扫描器（[url]http://www.insecure.org/nmap/[/url]）评选在内。这次评选出来的75个最佳安全工具在网络安全领域都是一些很有代表性的软件，对于那些在网络安全方面不知从何处开始的新手们来说，这对他们有相当的参考价值。 <br /><br /><br />工具：Nessus（最好的开放源代码风险评估工具） <br />网址：[url]http://www.nessus.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：Nessus是一款可以运行在Linux、BSD、Solaris以及其他一些系统上的远程安全扫描软件。它是多线程、基于插入式的软件，拥有很好的GTK界面，能够完成超过1200项的远程安全检查，具有强大的报告输出能力，可以产生HTML、XML、LaTeX和ASCII文本等格式的安全报告，并且会为每一个发现的安全问题提出解决建议。 <br /><br />工具：Ethereal（网络协议检测工具） <br />网址：[url]http://www.ethereal.com/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Ethereal是一款免费的网络协议分析程序，支持Unix、Windows。借助这个程序，你既可以直接从网络上抓取数据进行分析，也可以对由其他嗅探器抓取后保存在硬盘上的数据进行分析。你能交互式地浏览抓取到的数据包，查看每一个数据包的摘要和详细信息。Ethereal有多种强大的特征，如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。 <br /><br />工具：Snort（免费的入侵检测系统） <br />网址：[url]http://www.snort.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Snort是一款轻量级的网络入侵检测系统，能够在IP网络上进行实时的流量分析和数据包记录。它不仅能进行协议分析、内容检索、内容匹配，而且能用于侦测诸如缓冲溢出、隐秘端口扫描、CGI攻击、SMB探测、操作系统指纹识别等大量的攻击或非法探测。Snort使用灵活的规则去描述哪些流量应该被收集或被忽略，并且提供一个模块化的探测引擎。 <br /><br />工具：Netcat（网络瑞士军刀） <br />网址：[url]http://www.atstake.com/research/tools/network_utilities/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：一个简单而有用的工具，透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具，能够直接由其它程序和脚本轻松驱动。同时，它也是一个功能强大的网络调试和探测工具，能够建立你需要的几乎所有类型的网络连接，还有几个很有意思的内置功能。 <br /><br />工具：TCPDump/WinDump（用于网络监测和数据收集的优秀嗅探器） <br />网址：[url]http://www.tcpdump.org/[/url]，[url]http://windump.polito.it/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Tcpdump是一款众人皆知和受人喜欢的基于命令行的网络数据包分析和嗅探工具。它能把匹配规则的数据包的包头给显示出来。你能使用这个工具去查找网络问题或者去监视网络上的状况。WinDump是Tcpdump在Windows平台上的移植版。 <br /><br />工具：Hping2（类似ping的网络探测工具） <br />网址：[url]http://www.hping.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：hping2能发送自定义的ICMP/UDP/TCP包到目标地址并且显示包的响应情况。它有一个方便的traceroute模式，并且支持IP分片。这个工具在traceroute、ping和探测防火墙后的主机时特别有用。 <br /><br />工具：DSniff(一流的网络审计和渗透测试工具） <br />网址：[url]http://naughty.m[/url]＆#111nkey.org/~dugsong/dsniff/ <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：DSniff是由Dug Song开发的一套包含多个工具的软件套件。其中，dsniff、filesnarf、mailsnarf、msgsnarf、rlsnarf和webspy可以用于监视网络上我们感兴趣的数据（如口令、e-mail、文件等），arpspoof、dnsspoof和macof能很容易地载取到攻击者通常难以获取的网络信息（如二层交换数据），sshmitm和webmitm则能用于实现重写SSH和HTTPS会话达到m＆#111nkey-in-the-middle攻击。在[url]http://www.datanerds.net/~mike/dsniff.html[/url]可以找到Windows平台上的移植版。 <br /><br />工具：GFI LANguard（商业化的网络安全扫描软件） <br />网址：[url]http://www.gfi.com/lannetscan/[/url] <br />类别：商业 <br />平台：Windows <br />简介：LANguard扫描网络并且得出诸如每台机器的服务包等级、缺少的安全补丁、打开的共享、开放的端口、正在运行的服务和应用程序、注册表键值、弱口令、用户和组等扫描信息的报告。扫描结果输出为一个HTML格式的报告，报告能够自定义。 <br /><br />工具：Ettercap（为你的交换环境提供更多的安全） <br />网址：[url]http://ettercap.sourceforge.net/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Ettercap是一款以太网环境下的网络监视、拦载和记录工具，支持多种主动或被动的协议分析（甚至跟加密相关的SSH、HTTPS等），有数据插入、过滤、保持连接同步等多种功能，也有一个能支持多种嗅探模式的、强大而完整的嗅探套件，支持插件，能够检查网络环境是否是交换局域网，并且能使用主动或被动的操作系统指纹识别技术让你了解当前局域网的情况。 <br /><br />工具：Whisker/Libwhisker（CGI缺陷扫描软件和库） <br />网址：[url]http://www.wiretrip.net/rfp/p/doc.asp/d21.htm[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Whisker是一款非常好的HTTP服务器缺陷扫描软件，能扫描出大量的已知安全漏洞，特别是些危险的CGI漏洞。Libwhisker是一个用perl编写的由Whiskerr使用的程序库，通过它你可以创建自己HTTP扫描器。 <br /><br />工具：John the Ripper（格外强大、灵活、快速的多平台哈希口令破解器） <br />网址：[url]http://www.openwall.com/john/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：John the Ripper是一个快速的口令破解器，支持多种操作系统，如Unix、DOS、Win32、BeOS和OpenVMS等。它设计的主要目的是用于检查Unix系统的弱口令，支持几乎所有Unix平台上经crypt函数加密后的口令哈希类型，也支持Kerberos AFS和Windows NT/2000/XP LM哈希等。 <br /><br />工具：OpenSSH/SSH（访问远程计算机的一种安全方法） <br />网址：[url]http://www.openssh.com/[/url]，[url]http://www.ssh.com/commerce/index.html[/url] <br />类别：开放源码/商业 <br />平台：Linux/BSD/Unix/Windows <br />简介：SSH（Secure Shell）是一款用来登录远程服务器并在远程服务器上执行命令的程序，在缺少安全防护的网络上它能给两台互不信任的主机间提供安全可靠的加密通讯。X11连接和其他任意的TCP/IP端口连接都可以通过SSH进行数据封装转发到一个安全的通道里。SSH开发的本意是用于代替rlogin、rsh和rcp这些不安全的程序，以及为rdist和rsync提供安全通道。需要注意的是，OpenSSH是SSH的替代软件，SSH对于某些用途是要收费的，但OpenSSH总是免费。 <br /><br />工具：Sam Spade（Windows平台上的免费网络查询工具） <br />网址：[url]http://www.samspade.org/ssw/[/url] <br />类别：免费软件 <br />平台：Windows <br />简介：SamSpade提供了一个友好的GUI界面，能方便地完成多种网络查询任务，它开发的本意是用于追查垃圾邮件制造者，但也能用于其它大量的网络探测、网络管理和与安全有关的任务，包括ping、nslookup、whois、dig、traceroute、finger、raw HTTP web browser、DNS zone transfer、SMTP relay check、website search等工具，在它的网站还有大多数查询工具的一个在线版本（[url]http://www.samspade.org/t/[/url]）。 <br /><br />工具：ISS Internet Scanner（应用层风险评估工具） <br />网址：[url]http://www.iss.net/products_services/enterprise_protection[/url] <br />/vulnerability_assessment/scanner_internet.php <br />类别：商业 <br />平台：Windows <br />简介：互联网扫描器（Internet Scanner）始于1992年一个小小的开放源代码扫描器，它是相当不错的，但价格昂贵，使用开源软件Nessus来代替它也是一个不错的选择。 <br /><br />工具：Tripwire（功能强大的数据完整性检查工具） <br />网址：[url]http://www.tripwire.com/[/url] <br />类别：商业 <br />平台：Linux/BSD/Unix/Windows <br />简介：Tripwire是一款文件和目录完整性检查工具，它能帮助系统管理员和用户监视一些重要文件和目录发生的任何变化。通过制定一些基本的系统策略，在文件遭到破坏或篡改时由Tripwire通知系统管理员，从而能及时地做出处理。Tripwire的商业版本非常昂贵，在Tripwire.Org网站有一个免费的开放源代码的Linux版本，UNIX用户也可能需要考虑AIDE（[url]http://www.cs.tut.fi/~rammer/aide.html[/url]），它是Tripwire的免费替代品。 <br /><br />工具：Nikto（一款非常全面的web扫描器） <br />网址：[url]http://www.cirt.net/code/nikto.shtml[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Nikto是一款能对web服务器多种安全项目进行测试的扫描软件，能在200多种服务器上扫描出2000多种有潜在危险的文件、CGI及其他问题。它也使用LibWhiske库，但通常比Whisker更新的更为频繁。 <br /><br />工具：Kismet（强大的无线嗅探器） <br />网址：[url]http://www.kismetwireless.net/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Kismet是一款802.11b网络嗅探和分析程序，功能有：支持大多数无线网卡，能通过UDP、ARP、DHCP数据包自动实现网络IP阻塞检测，能通过Cisco Discovery协议列出Cisco设备，弱加密数据包记录，和Ethereal、tcpdump兼容的数据包dump文件，绘制探测到的网络图和估计网络范围。 <br /><br />工具：SuperScan（Windows平台上的TCP端口扫描器） <br />网址：[url]http://www.foundstone.com/index.htm?subnav=resources/[/url] <br />navigation.htm&amp;amp;subcontent=/resources/proddesc/superscan.htm <br />类别：免费 <br />平台：Windows <br />简介：SuperScan是一款具有TCP connect端口扫描、Ping和域名解析等功能的工具，能较容易地做到对指定范围内的IP地址进行ping和端口扫描。源代码不公开。 <br /><br />工具：L0phtCrack 4（Windows口令审计和恢复程序） <br />网址：[url]http://www.atstake.com/research/lc/[/url] <br />类别：商业 <br />平台：Linux/BSD/Unix/Windows <br />简介：L0phtCrack试图根据从独立的Windows NT/2000工作站、网络服务器、主域控制器或Active Directory上正当获取或者从线路上嗅探到的加密哈希值里破解出Windows口令，含有词典攻击、组合攻击、强行攻击等多种口令猜解方法。 <br /><br />工具：Retina（eEye公司的风险评估扫描工具） <br />网址：[url]http://www.eeye.com/html/Products/Retina/index.html[/url] <br />类别：商业 <br />平台：Windows <br />简介：像上面提到的Nessus和ISS Internet Scanner一样，Retina的功能也是用于扫描网络内所有的主机并且报告发现的每一个缺陷。 <br /><br />工具：Netfilter（当前Linux内核采用的包过滤防火墙） <br />网址：[url]http://www.netfilter.org/[/url] <br />类别：开放源码 <br />平台：Linux <br />简介：Netfilter是一款功能强大的包过滤防火墙，在标准的Linux内核内得到实现，iptables是防火墙配置工具。它现在支持有状态或无状态检测的包过滤，支持所有种类的NAT和包分片。相应的，对于非Linux平台上的防火墙，OpenBSD平台上有pf，UNIX平台上有ipfilter，Windows平台上有Zone Alarm个人防火墙。 <br /><br />工具：traceroute/ping/telnet/whois（基本命令） <br />网址： <br />类别：免费 <br />平台：Linux/BSD/Unix/Windows <br />简介：当我们使用大量的高水平的工具来辅助安全审计工作时，别忘了这几个最基本的工具。我们每个人都应非常熟悉这几个工具的用法，几乎所有的操作系统上都附带有这几个工具，不过Windows平台上没有whois工具，并且traceroute改名为tracert。 <br /><br />工具：Fport（增强的netstat） <br />网址：[url]http://www.foundstone.com/index.htm?subnav=resources/[/url] <br />navigation.htm&amp;amp;subcontent=/resources/proddesc/fport.htm <br />类别：免费 <br />平台：Windows <br />简介：Fport能显示主机上当前所有打开的TCP/IP、UDP端口和端口所属的进程，因此通过使用它能即刻发现未知的开放端口和该端口所属的应用程序，是一款查找木马的好工具。不过，Fport仅支持Windows系统，在许多UNIX系统上有一个netstat命令实现类似功能，Linux系统上用&amp;quot;netstat -pan&amp;quot;命令。源代码不公开。 <br /><br />工具：SAINT（安全管理员的综合网络工具） <br />网址：[url]http://www.saintcorporation.com/saint/[/url] <br />类别：商业 <br />平台：Linux/BSD/Unix <br />简介：Saint是一款商业化的风险评估工具，但与那些仅支持Windows平台的工具不同，SAINT运行在UNIX类平台上，过去它是免费并且开放源代码的，但现在是一个商业化的产品。 <br /><br />工具：Network Stumbler（免费的Windows平台802.11嗅探器） <br />网址：[url]http://www.stumbler.net/[/url] <br />类别：免费 <br />平台：Windows <br />简介：Netstumbler是最有名的寻找无线接入点的工具，另一个支持PDA的WinCE平台版本叫Ministumbler。这个工具现在是免费的，仅仅支持Windows系统，并且源代码不公开，而且该软件的开发者还保留在适当的情况下对授权协议的修改权。UNIX系统上的用户可以使用Kismet来代替。 <br /><br />工具：SARA（安全管理员的辅助工具） <br />网址：[url]http://www-arc.com/sara/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：SARA是一款基于SATAN安全扫描工具开发而来的风险评估工具，每月更新两次。 <br /><br />工具：N-Stealth（web服务器扫描工具） <br />网址：[url]http://www.nstalker.com/nstealth/[/url] <br />类别：商业 <br />平台：Windows <br />简介：N-Stealth是一款商业化的Web服务器安全扫描软件，通常它比whisker、nikto等免费的web扫描器升级的更为频繁。N-Stealth开发商宣称的&amp;quot;超过20,000条的缺陷和exploit数据&amp;quot;和&amp;quot;每天新增大量的缺陷检查&amp;quot;是非常可疑的。我们也要注意到，在nessus、ISS、Retina、SAINT和SARA等所有常见的风险评估工具里已含有web扫描组件，不过它们可能没有N-Stealth这样灵活易用和更新频繁。n-stealth不公开源代码。 <br /><br />工具：AirSnort（802.11 WEP密码破解工具） <br />网址：[url]http://airsnort.shmoo.com/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：AirSnort是一款无线局域网密钥恢复工具，由Shmoo小组开发。它监视无线网络中的传输数据，当收集到足够多的数据包时就能计算出密钥。 <br /><br />工具：NBTScan（从Windows网络上收集NetBIOS信息） <br />网址：[url]http://www.inetcat.org/software/nbtscan.html[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：NBTscan是一个用于扫描网络上NetBIOS名字信息的程序。这个程序对给出范围内的每一个地址发送NetBIOS状态查询，并且以易读的表格列出接收到的信息，对于每个响应的主机，它列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地址。 <br /><br />工具：GnuPG/PGP（保护你的文件和通信数据的先进加密程序） <br />网址：[url]http://www.gnupg.org/[/url]，[url]http://www.pgp.com/[/url] <br />类别：开放源码/商业 <br />平台：Linux/BSD/Unix/Windows <br />简介：PGP是由Phil Zimmerman开发的著名加密程序，它使用公钥加密算法和常规的加密技术相结合，能将加密后的文件安全地从一地传递到另一地，从而保护用户的数据免于窃听或其他的安全风险。GnuPG是遵照PGP标准开发的开源程序，不同的是，GnuPG是永远免费的，而PGP对于某些用途要收费。 <br /><br />工具：Firewalk（高级的traceroute） <br />网址：[url]http://www.packetfactory.net/projects/firewalk/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：Firewalk使用类似traceroute的技术来分析IP包的响应，从而测定网关的访问控制列表和绘制网络图。2002年10月，这个一流的工具在原来的基础上进行了重新开发。需要注意到的是，Firewalk里面的大多数功能也能由Hping2的traceroute选项来实现。 <br /><br />工具：Cain &amp;amp; Abel（穷人的L0phtcrack） <br />网址：[url]http://www.oxid.it/cain.html[/url] <br />类别：免费 <br />平台：Windows <br />简介：Cain &amp;amp; Abel是一个针对Microsoft操作系统的免费口令恢复工具。它通过如下多种方式轻松地实现口令恢复：网络嗅探、破解加密口令（使用字典或强行攻击）、解码被打乱的口令、显示口令框、显示缓存口令和分析路由协议等。源代码不公开。 <br /><br />工具：XProbe2（主动操作系统指纹识别工具） <br />网址：[url]http://www.sys-security.com/html/projects/X.html[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：XProbe是一款测定远程主机操作系统类型的工具。它依靠与一个签名数据库的模糊匹配以及合理的推测来确定远程操作系统的类型，利用ICMP协议进行操作系统指纹识别是它的独到之处。 <br /><br />工具：SolarWinds Toolsets（大量的网络发现、监视、攻击工具） <br />网址：[url]http://www.solarwinds.net/[/url] <br />类别：商业 <br />平台：Windows <br />简介：SolarWinds包含大量适合系统管理员做特殊用途的工具，与安全相关的工具包括许多的网络发现扫描器（network discovery scanner）和一个SNMP强力破解器。 <br /><br />工具：NGrep（方便的包匹配和显示工具） <br />网址：[url]http://www.packetfactory.net/projects/ngrep/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：NGrep在网络层实现了GNU grep的大多数功能，基于pcap，可以使你通过指定扩展的正则表达式或十六进制表达式去匹配网络上的数据流量。它当前能够识别流经以太网、PPP、SLIP、FDDI、令牌网和回环设备上的TCP、UDP和ICMP数据包，并且和其他常见的嗅探工具（如tcpdump和snoop）一样，理解bpf过滤机制。 <br /><br />工具：Perl/Python（脚本语言） <br />网址：[url]http://www.perl.org[/url]，[url]http://www.python.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：当我们使用那些已经开发好的安全工具来处理任务时，别忘了能自己写出（或修改）安全程序也是一件非常重要的事情。利用Perl和Python能非常容易地写出用于系统测试、exploit和修补的脚本程序，使用包含Net::RawIP和协议实现等模块的CPAN（Comprehensive Perl Archive Network：[url]http://www.cpan.org/[/url]）或类似的档案能帮助我们比较容易地进行相关的开发。 <br /><br />工具：THC-Amap（应用程序指纹识别扫描器） <br />网址：[url]http://www.thc.org/releases.php[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：由THC开发的Amap是一个功能强大的扫描器，它通过探测端口响应的应用程序指纹数据来识别应用程序和服务，远甚于通过缺省端口号来判断应用程序和服务的方法。 <br /><br />工具：OpenSSL（最为重要的SSL/TLS加密库） <br />网址：[url]http://www.openssl.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：OpenSSL项目是共同努力开发出来的一个健全的、商业级的、全开放的和开放源代码的工具包，用于实现安全套接层协议(SSL v2/v3)和传输层安全协议(TLS v1)以及形成一个功效完整的通用加密库。该项目由全世界范围内志愿者组成的团体一起管理，他们使用Internet去交流、设计和开发这个OpenSSL工具和相关的文档。 <br /><br />工具：NTop（网络使用状况监测软件） <br />网址：[url]http://www.ntop.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Ntop是一款显示网络使用状况的流量监测软件，类似于UNIX平台上监视系统进程的top命令。在交互模式下，ntop会将网络的使用状况显示在用户的终端上；在Web模式下，ntop会做为一个web服务器，创建包含网络状况的HTML网页返回给用户。 <br /><br />工具：Nemesis（命令行式的UNIX网络信息包插入套件） <br />网址：[url]http://www.packetfactory.net/projects/nemesis/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：Nemesis项目是为了开发一个UNIX/Linux系统上基于命令行的、方便人们使用的IP栈，它可以自定义数据包、插入数据包、进行协议攻击等，是一个很好的测试防火墙、入侵检测系统、路由器和其他网络设备的工具。如果你对Nemesis感兴趣，那么你也可能需要看看hping2，这两者补相互之不足。 <br /><br />工具：LSOF（列出打开的文件） <br />网址：[url]ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：LSOF是针对Unix的诊断和分析工具，它能显示出由系统里正在运行的进程所打开的文件，也能显示出每一个进程的通讯socket。 <br /><br />工具：Hunt（Linux平台上高级的包嗅探和会话劫持工具） <br />网址：[url]http://lin.fsid.cvut.cz/~kra/index.html#HUNT[/url] <br />类别：开放源码 <br />平台：Linux <br />简介：Hunt能监视、劫持、重设网络上的TCP连接，在以太网上使用才有作用，并且含有监视交换连接的主动机制，以及包括可选的ARP转播和劫持成功后的连接同步等高级特征。 <br /><br />工具：Honeyd（你个人的honeynet，[url]http://www.honeynet.org/[/url]） <br />网址：[url]http://www.citi.umich.edu/u/provos/honeyd/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Honeyd是一个能在网络上创建虚拟主机的小小后台程序，虚拟主机能被配置成运行任意的服务，并且洽当的服务TCP特性以致他们看起来就像是运行在某个特定版本的操作系统上。Honeyd能在一个模拟的局域网环境里让一台主机配有多个地址，并且可以对虚似主机进行ping、traceroute。虚拟主机上任何类型的服务都可以依照一个简单的配置文件进行模拟。Honeyd也可以对一台主机做代理服务，而不是模拟它。 <br /><br />工具：Achilles（可以修改http会话包的代理程序） <br />网址：[url]http://packetstormsecurity.nl/filedesc/achilles-0-27.zip.html[/url] <br />类别：开放源码 <br />平台：Windows <br />简介：Achilles是一个设计用来测试web应用程序安全性的工具。它是一个代理服务器，在一个HTTP会话中扮演着&amp;quot;中间人&amp;quot;（man-in-the-middle）的角色。一个典型的HTTP代理服务器将在客户浏览器和web服务器间转发数据包，但Achilles却载取发向任一方的HTTP会话数据，并且在转发数据前可以让用户修改这些数据。 <br /><br />工具：Brutus（网络认证的强行破解工具） <br />网址：[url]http://www.hoobie.net/brutus/[/url] <br />类别：免费 <br />平台：Windows <br />简介：Brutus是一款对远程服务器的网络服务进行口令猜解的工具，支持字典攻击和组合攻击，支持的网络应用包括HTTP、POP3、FTP、SMB、TELNET、IMAP、NTP等。源代码不公开。UNIX系统上的THC-Hydra有类似的功能。 <br /><br />工具：Stunnel（一个多种用途的SSL加密外壳） <br />网址：[url]http://www.stunnel.org/[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Stunnel程序被设计用来做为本地客户端和远程服务器间的SSL加密外壳。它能在POP2、POP3、IMAP等使用inetd后台进程的服务器上增加SSL功能，并且不会影响到程序源代码。它使用OpenSSL或SSLeay库建立SSL会话连接。 <br /><br />工具：Paketto Keiretsu（极端的TCP/IP） <br />网址：[url]http://www.doxpara.com/paketto[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：Paketto Keiretsu是一组使用新式的不常见的策略去操作TCP/IP网络的工具集合，开发的最初本意是为了在现有TCP/IP架构里去实现一些功能，但现在已经远远超出了最初的本意。包含的工具有：Scanrand，一个罕见的快速的网络服务和拓朴发现系统；Minewt，一个NAT/MAT路由器；linkcat，把以太网链路做为标准的输入输出；Paratrace，不产生新的连接就能追踪网络路径；Phentropy，使用OpenQVIS在三维拓朴空间里能绘制出任意总量的数据源图形。 <br />　 <br /><br />工具：Fragroute（破坏入侵检测系统最强大的工具） <br />网址：[url]http://www.m[/url]＆#111nkey.org/~dugsong/fragroute/ <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Fragroute能够截取、修改和重写向外发送的报文，实现了大部分的IDS攻击功能。Fragroute起重要作用的是一个简单的规则设置语言，以它去实现延迟、复制、丢弃、碎片、重叠、打印、重排、分割、源路由或其他一些向目标主机发送数据包的攻击。这个工具开发的本意是去测试入侵检测系统、防火墙、基本的TCP/IP栈的行为。像Dsniff、Libdnet一样，这个优秀的工具也是由Dug Song开发的。 <br /><br />工具：SPIKE Proxy <br />网址：[url]http://www.immunitysec.com/spikeproxy.html[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix/Windows <br />简介：Spike Proxy是一个开放源代码的HTTP代理程序，用于发现web站点的安全缺陷。它是Spike应用程序测试套件（[url]http://www.immunitysec.com/spike.html[/url]）的一部份，支持SQL插入检测、web站点检测、登录表单暴力破解、溢出检测和字典穷举攻击检测等。 <br /><br />工具：THC-Hydra（网络认证的破解工具） <br />网址：[url]http://www.thc.org/releases.php[/url] <br />类别：开放源码 <br />平台：Linux/BSD/Unix <br />简介：这个工具能对需要网络登录的系统进行快速的字典攻击，包括FTP、POP3、IMAP、Netbios、Telnet、HTTP Auth、LDAP NNTP、VNC、ICQ、Socks5、PCNFS等，支持SSL，并且现在是Nessus风险评估工具的一部份。 <br /><br /><br />其他的25个最佳安全工具： <br /><br />OpenBSD，[url]http://www.openbsd.org/[/url] :安全可靠的操作系统。 <br /><br />TCP Wrappers，[url]ftp://ftp.porcupine.org/pub/security/index.html[/url] :一流的IP访问控制和日志的实现机制。 <br /><br />pwdump3，[url]http://www.polivec.com/pwdump3.html[/url] :获取本地或远程Windows主机的口令哈希，而不管是否安装了syskey。 <br /><br />LibNet，[url]http://www.packetfactory.net/libnet/[/url] :允许程序员去构造和插入网络数据包的高水平开发函数库. <br /><br />IpTraf，[url]http://cebu.mozcom.com/riker/iptraf/[/url] :IP网络监控软件。 <br /><br />Fping，[url]http://www.fping.com/[/url] :一次可以ping多个IP地址的扫描程序。 <br /><br />Bastille，[url]http://www.bastille-linux.org/[/url] :增强系统安全性的脚本程序，支持Linux, Mac OS X和HP-UX操作系统。 <br /><br />Winfingerprint，[url]http://winfingerprint.sourceforge.net/[/url] :一款基于Win32的高级远程系统扫描器。 <br /><br />TCPTraceroute，[url]http://michael.toren.net/code/tcptraceroute/[/url] :使用TCP SYN包实现traceroute的工具。 <br /><br />Shadow Security Scanner，[url]http://www.safety-lab.com/en2/products/1.htm[/url] :一款商业化的风险评估工具。 <br /><br />pf，[url]http://www.benzedrine.cx/pf.html[/url] :OpenBSD系统内很有特色的包过滤防火墙。 <br /><br />LIDS，[url]http://www.lids.org/[/url] :Linux内核上的入侵检测和入侵防御系统。 <br /><br />hfnetchk，[url]http://www.microsoft.com/technet/treeview/default.asp?[/url] <br />url=/technet/security/tools/tools/hfnetchk.asp :微软发布的用于检查网络上Windows主机补丁安装情况的工具。 <br /><br />etherape，[url]http://etherape.sourceforge.net/[/url] :继流量监测软件etherman之后又一个支持unix的图形化网络状况监测软件。 <br /><br />dig，[url]http://www.isc.org/products/BIND/[/url] :Bind附带的DNS查询工具。 <br /><br />Crack/Cracklib，[url]http://www.users.dircon.co.uk/~crypto/[/url] :一流的本地口令破解器。 <br /><br />cheops/cheops-ng，[url]http://www.marko.net/cheops/[/url]，[url]http://cheops-ng.sourceforge.net/[/url] :绘制本地或远程网络的网络图，并且也能识别主机的操作系统类型。 <br /><br />zone alarm，[url]http://www.zonelabs.com/[/url] :Windows平台上的个人防火墙软件。 <br /><br />Visual Route，[url]http://www.visualware.com/visualroute/index.html[/url] :获取traceroute/whois数据，并且绘制出数据包经过的网络路线在世界地图上的位置。 <br /><br />The Coroner's Toolkit (TCT)，[url]http://www.fish.com/tct/[/url] :运行于Unix系统上的文件系统检查及紧急修复工具集。 <br /><br />tcpreplay，[url]http://tcpreplay.sourceforge.net/[/url] :能把tcpdump或snoop保存下来的流量监测文件在任意点进行回放的工具。 <br /><br />snoop，[url]http://www.spitzner.net/snoop.html[/url]&amp;nbsp; &amp;nbsp;:Solaris系统附带的网络嗅探工具。 <br /><br />putty，[url]http://www.chiark.greenend.org.uk/~sgtatham/putty/[/url]&amp;nbsp; &amp;nbsp;:Windows平台上优秀的SSH客户端。 <br /><br />pstools，[url]http://www.sysinternals.com/ntw2k/freeware/pstools.shtml[/url] :一套用于管理Windows系统的免费命令行工具。 <br /><br />arpwatch，[url]http://www-nrg.ee.lbl.gov/[/url] :主要用来检测mac地址和ip地址对应关系的工具。]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[搜索引擎加注技巧]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3821719.html" />  
<issued>2005-12-09T13:15:18Z</issued> 
<created>2005-12-09T13:15:18Z</created> 
<modified>2005-12-09T13:15:18Z</modified>
<id>tag:harrymao.blogchina.com,2005://3821719</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>学习</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[郑重声明：本文阐述与交流一些正确的搜索引擎加注方法与技巧，旨在希望更多内容丰富的网站能够更好地加载到各大搜索引擎上去， 　　　　　被大家发现、欣赏。决不介绍并坚决反对一些投机取巧的搜索引擎加注“技巧”诸如：暗藏鬼页等。 <br />1. 如何确定关键词<br />2. 使用META值 <br />3. 指引Web robot（网际机器人）为你服务<br />4. 提高排名的几点技巧 <table cellspacing="0" cellpadding="0" align="left"><tbody><tr><td><span id="ad_tech_mid_big"></span></td></tr></tbody></table><p>&amp;nbsp;5.全球著名搜索引擎介绍<br /><br />1. 如何确定关键词 　　　　　　　　　　　　　　　　　　　　　　　　　返回首页 | 返回目录<br /><br />　　“关键词（Keywords）”是搜索引擎将站点进行分类的依据，同时也就是我们在查找信息时输入的那些词, 所以关键词在注册搜索引擎 时至关重要。那么有什么办法能帮助我们选择正确的关键词呢？<br /><br />　　方法一： 选几个主要的搜索引擎（例如：AltaVista，Lycos，Excite等）； <br />　　1）输入你认为的自己站点的关键词，然后Search。一般情况下，你会得到一个很长的列表； <br />　　2）打开前十位的站点，然后查看每一个的META标签（打开源文件，META标签在 &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt; 中）； <br />　　3）检查他们的Keywords，从其中借鉴你没有想到的一些词； <br />　　4）最后归纳出自己的关键词。 <br />　　可以多选几个词重复进行这个过程。<br /><br />　　方法二：选择人们最常用的一些搜索词（亦即站点的关键词），然后进行选择。网上有很多这样的资源： <br />　　到 http://www.searchterms.com/ 看一看，那里有每个月网上最流行搜索词的排行榜； <br />　　想知道YAHOO最流行的200个KEYWORDS? 去 http://eyescream.com/yahootop200.htm <br />　　…… 这些资源值得去看，但也有很大局限性，例如:YAHOO前20名KEYWORDS中，有60%是关于“SEX”的，看来人们最感兴趣的还是　　那神秘的“性”。如果你的网站是关于电脑方面的，似乎蜂马牛不相及。怎么办？需要更广泛的统计数据，GOTO搜索引擎 中提供了一个这样的服务“搜索词使用频率统计”： <br />　　* 进 入 GOTO 站 点 <br />　　* 点 击 左 下 角 &amp;quot;Get Listed on GoTo&amp;quot; 按 钮 <br />　　* 点 击 上 方 &amp;quot;Client Tool Kit&amp;quot; 链 接 <br />　　* 选 择 &amp;quot;Tools&amp;quot; 中 的 &amp;quot;Search Term Suggestion List&amp;quot; <br />　　* 在 跳 出 的新 窗 口 中 输 入 要 查 询 的 关 键 词 <br />　　* 点 击 &amp;quot;Find It&amp;quot; 查 询 <br /><br /><br />2. 使用META值 　　　　　　　　　　　　　　　　　　　　　　　　　　　返回首页 | 返回目录 <br /><br />　　Meta 标签放在每个网页的 &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt; 中，常见格式如： <br /><br />　　&amp;lt;meta name=&amp;quot;GENERATOR&amp;quot; content=&amp;quot;Microsoft FrontPage 3.0&amp;quot;&amp;gt;说明编辑工具； <br />　　&amp;lt;meta name=&amp;quot;KEYWORDS&amp;quot; content=&amp;quot;...&amp;quot;&amp;gt;说明关键词； <br />　　&amp;lt;meta name=&amp;quot;DESCRIPTION&amp;quot; content=&amp;quot;...&amp;quot;&amp;gt;说明主页描述； <br /><br />　　&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=gb_2312-80&amp;quot;&amp;gt;和 <br />　　&amp;lt;meta http-equiv=&amp;quot;Content-Language&amp;quot; content=&amp;quot;zh-CN&amp;quot;&amp;gt;说明所用语言及文字<br /><br />　　可见META 有 两 种，name 和 http-equiv。 <br /><br />　　name主要用于描述网页, 对应于content, 以便于搜索引擎机器人查找、 分类（目前几乎所有的搜索引擎都使用网上机器人自动查找META值来给你的网页分类）。这其中最重要的是 DESCRIPTION（你的站点在引擎上的描述）和KEYWORDS（搜索引擎籍以分类的关 键词），应该给你的“每一页”都插入这两个META值。当然你也可以不要搜索引擎检索, 可用: <br />　　&amp;lt;meta name=&amp;quot;ROBOTS&amp;quot; content=&amp;quot;all | none | index | noindex | follow | nofollow&amp;quot;&amp;gt;来确定: <br />　　设定为&amp;quot;all&amp;quot;时文件将被检索，且页上链接可被查询; <br />　　设定为&amp;quot;none&amp;quot;则表示文件不被检索，而且不查询页上的链接; <br />　　设定为&amp;quot;index&amp;quot;时文件将被检索; <br />　　设定为&amp;quot;follow&amp;quot;则可查询页上的链接; <br />　　设定为&amp;quot;noindex&amp;quot;时文件不检索，但可被查询链接; <br />　　设定为&amp;quot;nofollow&amp;quot;则表示文件不被检索，但可查询页上的链接. <br /><br />　　http-equiv 顾名思义相当于http文件头的作用，可以直接影响网页的传输。比较直接的例子，如: <br /><br />　　1、自动刷新，并指向新网页 <br />　　&amp;lt;meta http-equiv=&amp;quot;Refresh&amp;quot; content=&amp;quot;10; url=http://newlink&amp;quot;&amp;gt;10秒后刷新到http://newlink; <br />　　2、网页间转换时加入效果 <br />　　&amp;lt;meta http-equiv=&amp;quot;Page-Enter&amp;quot; content=&amp;quot;revealTrans(duration=10, transition=50)&amp;quot;&amp;gt; <br />　　&amp;lt;meta http-equiv=&amp;quot;Page-Exit&amp;quot; content=&amp;quot;revealTrans(duration=20, transition=6)&amp;quot;&amp;gt; <br />　　加在一个网页中，进出时有一些特殊效果，这个功能即FrontPage 98的Format/Page Transition.不过注意所加网页不能是一个 　　Frame页; <br />　　3、强制网页不被存入Cache中 <br />　　&amp;lt;meta http-equiv=&amp;quot;pragma&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt; <br />　　&amp;lt;meta http-equiv=&amp;quot;expires&amp;quot; content=&amp;quot;wed, 26 Feb 1997 08:21:57 GMT&amp;quot;&amp;gt; <br />　　大家可以到http://www.internet.com/上看看，它的首页当你断线后，就无法在cache中再调出。（本身是关于建站很棒的站点) <br />　　4、定义指向窗口 <br />　　&amp;lt;meta http-equiv=&amp;quot;window-target&amp;quot; content=&amp;quot;_top&amp;quot;&amp;gt; <br />　　可以防止网页被别人作为一个Frame调用.<br /><br />　　以下举几例很有用的META值设置：<br />　　 &amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;ALL&amp;quot;&amp;gt; 可以告诉搜索ROBOTS查找站点中所有内容； <br />　　 &amp;lt;meta name=&amp;quot;revisit-after&amp;quot; content=&amp;quot;7 days&amp;quot;&amp;gt;，则ROBOTS会在7天后再次前来搜索，这对于定期更新的站点非常有用； <br />　　 &amp;lt;meta http-equiv=&amp;quot;pragma&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;，网页内容就不能被放在 CACHE 中离线浏览，每次访问都会强制刷新； <br />　　 …… <br /><br />3. 指引Web robot（网际机器人）为你服务 　　　　　　　　　　　　　　返回首页 | 返回目录<br /><br /><br />　　有时你会莫名其妙地发现你的主页的内容在一个搜索引擎中被索引，即使你从未与他 们有过任何联系。其实这正是Web Robot的功劳。Web Robot其实是一些程序，它可以 穿越大量Internet网址的超文本结构，递归地检索网络站点所有的内容。这些程序有时被叫 “蜘蛛（Spider）” ， “网上流浪汉（Web Wanderer）”，“网络蠕虫（web worms）”或Web crawler。一些Internet网上知名的搜索引擎站点（Search Engines）都 有专门的Web Robot程序来完成信息的采集，例如Lycos，Webcrawler，Altavista等，以及中文搜索引擎站点例如北极星，网易，GOYOYO等。 <br />　　Web Robot就象一个不速之客，不管你是否在意，它都会忠于自己主人的职责，任劳 任怨、不知疲倦地奔波于万维网的空间，当然也会光临你的主页，检索主页内容并生成它所需要的记录格式。或许有的主页内容你乐于世人皆知，但有的内容你却不愿被洞察、索引。你可以用以下方法布置下路标，告诉Web Robot应该怎么去检索你的主页，哪些可以检索，哪些不可以访问。 <br /><br /><br />　　1. Robots Exclusion Protocol 协议 <br /><br />　　网络站点的管理员可以在站点上建立一个专门格式的文件，来指出站点上的哪一部分 可以被robot访问, 这个文件放在站点的根目录下，即http://.../robots.txt. 当Robot访问一个 Web 站点时，比如http://www.sti.net.cn/，它先去检查文件http://www.sti.net.cn/robots.txt。如果这个文件存在，它便会按照这样的记录格式去分析： <br /><br />　　User-agent: * <br />　　Disallow: /cgi-bin/ <br />　　Disallow: /tmp/ <br />　　Disallow: /~joe/<br /><br /><br />　　以确定它是否应该检索站点的文件。 在一个站点上只能有一个 &amp;quot;/robots.txt&amp;quot; 文件，而且文件名的每个字母要求全部是小写。在Robot的记录格式中每一个单独的&amp;quot;Disallow&amp;quot;行表示你不希望Robot访问的URL， 每个URL必须单独占一行，不能出现 Disallow: /cgi-bin/ /tmp/&amp;quot;这样的病句。同时在一个记录中不能出现空行，这是因为空行是多个记录分割的标志。 <br />　　User-agent行指出的是Robot或其他代理的名称。在User-agent行，'*' 表示一个特殊的含义---所有的robot。 <br /><br />　　下面是几个robot.txt的例子： <br /><br />　　在整个服务器上拒绝所有的robots： <br />　　User-agent: * <br />　　Disallow: / <br /><br />　　允许所有的robots访问整个站点： <br />　　User-agent: * <br />　　Disallow: <br />　　或者产生一个空的 &amp;quot;/robots.txt&amp;quot; 文件。 <br /><br />　　服务器的部分内容允许所有的robot访问 <br />　　User-agent: * <br />　　Disallow: /cgi-bin/ <br />　　Disallow: /tmp/ <br />　　Disallow: /private/ <br /><br />　　拒绝某一个专门的robot： <br />　　User-agent: BadBot <br />　　Disallow: /<br /><br /><br />　　只允许某一个robot光顾： <br />　　User-agent: WebCrawler <br />　　Disallow: <br />　　User-agent: * <br />　　Disallow: / <br /><br /><br />　　2、Robots META tag <br /><br />　　一个网页作者可以使用专门的HTML META tag ，来指出某一个网页是否可以被索引、分析或链接。 这些方法适合于大多数的Web Robot，至于是否在软件中实施了这些方法，还依赖于 Robot的开发者，并非可以保证对任何Robot都灵验。如果你迫切需要保护自己内容，则应考虑采用诸如增加密码等其他保护方法。 <br />　　Robots META tag指令使用逗号隔开，可以使用的指令包括 [NO]INDEX 和[NO]FOLLOW。INDEX 指令指出一个索引性robot是否可以对本页进行索引；FOLLOW 指令指出robot是否可以跟踪本页的链接。缺省的情况是INDEX和FOLLOW。例如： <br />　　&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;index,follow&amp;quot;&amp;gt; <br />　　&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex,follow&amp;quot;&amp;gt; <br />　　&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;index,nofollow&amp;quot;&amp;gt; <br />　　&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex,nofollow&amp;quot;&amp;gt; <br /><br />4. 提高排名的几点技巧 　　　　　　　　　　　　　　　　　　　　　　　返回首页 | 返回目录<br /><br /><br />用关键字的复数形式， （如，用&amp;quot;books&amp;quot;来代替&amp;quot;book&amp;quot;,那么，当有人查询book或者books时， 你的站点都会呈现在他面前）<br /><br /><br />关键字的大写和小写多种拼写方式都用上。 （如：books,Books,BOOKS）同一个单词的三种以上的拼写方式并不会起到多大作用，尽管通常的错误拼写倒能奏效。<br /><br /><br />用你选定的关键字的组合方式。人们经常使用包含2或2个以上关键字的短语来搜索。 （如：&amp;quot;storage facilities&amp;quot;,&amp;quot;STORAGE FACILITIES&amp;quot; 为了真正找准你的目标市场，加上&amp;quot;self, &amp;quot;SELF&amp;quot;和&amp;quot;你的城市/州&amp;quot; 等单词。那些不需要你的产品和服务的访问者即便再多，也没什么价值。<br /><br /><br />必须使用META值。 许多搜索引擎都是根据这些META值为你的站点做索引的。META值位于你页面HTML中的&amp;lt;head&amp;gt;和&amp;lt;/head&amp;gt;之间，并不会在你的页面中显示出来。为了更精确的使用这些META值。可以找一个排名最高的站点的源文件来做些参考分析。<br /><br /><br />使用你10到20个最好的关键字的组合。 关键字丰富的META内容通常都是你站点排名的决定性因素。<br />提示：如果可能，尽量在每一段的开头或者搜索短语较靠前 的位置使用你最具代表性的关键字。<br /><br /><br />用关键字来填满你图象链接中的ALT值。<br /><br /><br />你站点中的每一页都应该单独登录到搜索引擎，而不仅仅是登录了首页就结束了。<br />提示：许多搜索引擎都会定期对你的站点重新检索，如果站点上没有变化你的排名可就会下降了，所以，保持你的站点常新。 <br /><br /><br />为你的每一个主要的关键字创造或定制一个独立的页面， 并为每个主要的搜索引擎单独设计。 这会花上些时间，但是，一旦你做好了，将会令人不可置信的 提高你的排名。<br />提示：确保每个页面都能直接链接到首页以及其它一些相关页面。 <br />警告！过去很多人投机取巧，滥用关键字来取得更高的排名。就是将自己的关键字一再重复使用，并改变文字颜色使之适应页面背景色。现在如果一旦发现你这么做了，大多数搜索引擎都会采取惩罚措施。&amp;nbsp;<img height="1" src="http://www.pcdog.com/down_info.asp?id=172" width="1" border="0" /><br /></p>]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[北京市书店大全]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3788141.html" />  
<issued>2005-12-06T12:59:03Z</issued> 
<created>2005-12-06T12:59:03Z</created> 
<modified>2005-12-06T12:59:03Z</modified>
<id>tag:harrymao.blogchina.com,2005://3788141</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>生活</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[<div align="center"><b>北京市书店大全</b></div><br /><br /><font size="2">&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 科学书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 朝内大街135号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64034558 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 学士书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东黄城根北街16号 &amp;nbsp; 64030255 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东单教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东单北大街86号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65250693 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东便门课本书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 东崇文门东大街8号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;67181249 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 花市书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 西花市大街134号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;67150866 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京市新华书店批销中心 &amp;nbsp; 海淀区学院南路15号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62218914 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店总店批销中心 &amp;nbsp; 西城区北礼士路135号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68312021 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 王府井新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 东城区王府井大街218号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65132813 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京图书大厦 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 西城区西长安街17号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;66078546 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京大学教育图书公司 &amp;nbsp; 大兴清源路校长大厦 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;69248888-5108 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 人民大学出版社门市部 &amp;nbsp; 海淀区中关村大街31号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62510566 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北方交大四维书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 北方交大图书馆内 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62271792 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 人民邮电出版社门市部 &amp;nbsp; 海淀西土城路10号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62284031 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 清华大学清华方圆书店 &amp;nbsp; 清华大学校内 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62771967 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京大学教材科 &amp;nbsp; &amp;nbsp; &amp;nbsp; 北大校内图书馆 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62752078 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 地质出版社门市部 &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀区学院路29号 &amp;nbsp; &amp;nbsp; &amp;nbsp;82324508 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 王府井外文书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 王府井大街29号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65126922 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀外文书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀西大街25号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62571320 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 科大门市部 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀图书城藉海楼三层 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 九章数学书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀图书城藉海楼二层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62639894 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北医大出版社门市部 &amp;nbsp; &amp;nbsp; 海淀区学院路38号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62092495 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 首都医科大学门市部 &amp;nbsp; &amp;nbsp; 右安门外西头条形10号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;63051272 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 全科中西医药书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 朝阳区新东路7号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64166060 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 三想医学书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 丰台路5号军事医学图书馆内 66931860 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 好友医药书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 西直门外大街北滨河路11号 &amp;nbsp; 62278726 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东单医药健康书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 东单北大街104号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65250485 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 顺义县新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 顺义县石园南区花园路 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;89444125 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 通州区新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 通州区新华大街114号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;69544149 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 密云县新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; 密云县鼓楼南大街2号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;69042433 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店新街口门市部 &amp;nbsp; 新街口十字路口 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62252467 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店西四门市部 &amp;nbsp; &amp;nbsp; 西四路口 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;66162291 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀科苑书城医药书店 &amp;nbsp; 复兴路15号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68576164 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀区北京建筑书店 &amp;nbsp; &amp;nbsp; 海淀区甘家口商场西侧 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68351012 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店清华门市部 &amp;nbsp; &amp;nbsp; 清华大学校内 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62782410 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店北大门市部 &amp;nbsp; &amp;nbsp; 北大校内三角地 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62753275 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店海淀高教书店 &amp;nbsp; 海淀区学院路26号 &amp;nbsp; 62311407 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店翠微大厦门市部 &amp;nbsp; 海淀区翠微路33号 &amp;nbsp; 68167964 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店海淀门市部 &amp;nbsp; &amp;nbsp; 海淀区海淀西大街23号 &amp;nbsp; 62552254<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 二酉堂图书经销有限公司 北京海淀区西大街64号雪芹书画楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;62750657 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 三联韬奋图书中心 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区美术馆东街22号 &amp;nbsp; &amp;nbsp; &amp;nbsp;640001122-3059 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 大正书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东四北大街5号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64054386 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 万圣书园 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区成府街60号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62612799 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 万泉河书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区万泉河路58号 &amp;nbsp; &amp;nbsp; &amp;nbsp;62562469 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 天地科技书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区三里河二区11楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;68518211 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 天桥书店 　 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区前门南大街203号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63033916 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 王府井书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区王府井大街2035号3-4层 &amp;nbsp; &amp;nbsp; &amp;nbsp;65253775 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 五四书店 　 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区五四大街甲31号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64012108 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 丰台书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京丰台区电报局街48号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;63821249 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 少年儿童书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区西单北大街137号 &amp;nbsp; &amp;nbsp; &amp;nbsp;66037723 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 中国书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区琉璃厂西街57号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63035759 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 文翰书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区朝阳门内大街166号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65241362 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 世界书苑 　　 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区西三环北路87号 &amp;nbsp; &amp;nbsp; &amp;nbsp;68473166 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 世界知识书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区外交部街丁31号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65265919 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东方书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区地安门外大街146号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64016640 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东单音像书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东单北大街102号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65254289 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东单教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东单北大街86号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65250693 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东城艺术书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东华门大街49号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65253946 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东便门课本书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京崇文区东大街8号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;67166973 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 东高地书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京丰台区东高地南街甲6号 &amp;nbsp; &amp;nbsp; &amp;nbsp;67991605 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北大新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区北大校内 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62753275 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北新安课本书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京石景山区北新安大街52号 &amp;nbsp; &amp;nbsp; &amp;nbsp;68872336 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北图书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区白石桥39号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68415566 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京大学新文化书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区北京大学内电教楼东南侧 62628682 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京今古文化书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区复兴路15号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68515544-2071 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京外文书店音乐书店 北京东城区东安门大街16号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65254783 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京风入松书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀路46号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62625940 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京国际书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀大街31号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62552499 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京科学技术书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区西单北大街华南大厦二层 66022659 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北京特价书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区后石道胡同82号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64030017 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 北海书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区北海公园内 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64042841 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 四宝堂书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区琉璃厂115号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;63013687 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 外文工具书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区王府井大街219号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65255140 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 外文书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区锡拉胡同2号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65250008 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 成才教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区地安门外大街14号 &amp;nbsp; &amp;nbsp; &amp;nbsp;62012857 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 地安门新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区地安门外大街156号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64040781 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 西单外文书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区西单北大街179号 &amp;nbsp; &amp;nbsp; &amp;nbsp;66021700 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 西城电子科技书站 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区新街口南大街105号 &amp;nbsp; &amp;nbsp; &amp;nbsp;66188346 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 亚运村书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区安慧里二区一号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;64932647 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 光明楼书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京崇文区光明路9号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;67123307 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 团结湖书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区团结湖路北七号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;65004346 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 华海文化书屋 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东交民巷29号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65228563 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 宇航文苑 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀大街31号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62579190 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 兴达书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区复外大街乙三号 &amp;nbsp; &amp;nbsp; &amp;nbsp;68033726 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 花市书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京崇文区西花市大街134号 &amp;nbsp; &amp;nbsp; &amp;nbsp;67120216 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 邮科书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区北河沿大街285号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64030666 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 闲梦书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区广内大街乙67号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63043701 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 宏大书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区月坛北街甲3号 &amp;nbsp; &amp;nbsp; &amp;nbsp;68024409 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 松筠阁书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区琉璃厂东街106号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63031446 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 松风书画社 北京丰台区右外东庄13号楼西侧 &amp;nbsp; &amp;nbsp; &amp;nbsp;63035680 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 国防大学新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区红山口甲3号 &amp;nbsp; &amp;nbsp; &amp;nbsp;66764332 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 国际文化书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区安内大街40号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64010836 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 国林风图书中心 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀西大街36号昊海楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;62534375 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 和平街书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区和平街十区七号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;64216095 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 金色旅游图书中心 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东四北大街117号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64045715 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 河滩书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京门头沟区城子大街152号 &amp;nbsp; &amp;nbsp; &amp;nbsp;69842838 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 春雨教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区西单大木仓胡同甲33号 &amp;nbsp; &amp;nbsp; &amp;nbsp;66081273 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 科文书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区阜成门59号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;66175032 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 科苑书城 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区复兴路15号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68515544-2073 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 科学书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区朝阳门内大街135号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64017892 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 科学技术书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区西长安街19号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;66022941 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 香山书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区北辛村54号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62591426 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 香河园书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区西坝河南里17楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;64652915 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 皇城书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区交道口东公街9号 　 &amp;nbsp; &amp;nbsp; &amp;nbsp;64077368 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 垡头书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区垡头北里9号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;67383406 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 音乐书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东安门大街16号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65254783 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 前门科学技术书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区前门大街57-59号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63033992 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 前门音像书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区前门大街55号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63037753 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 振兴书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区红莲中里14号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63266384 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 高家园书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区高家园小区 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64372405 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 酒仙桥书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区酒仙桥商场后 &amp;nbsp; &amp;nbsp; &amp;nbsp;64371046 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海王村古旧书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区琉璃厂东街115号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63031797 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀区图书城电子科技书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀西大街36号一层 &amp;nbsp; &amp;nbsp; &amp;nbsp;62534720 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀图书城 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀西大街36号 &amp;nbsp; &amp;nbsp; &amp;nbsp;62565648 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀图书城外文书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀西大街25号 &amp;nbsp; &amp;nbsp; &amp;nbsp;62571320 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀图书城考试专用书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀西大街31号 &amp;nbsp; &amp;nbsp; &amp;nbsp;62574999 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 海淀新华书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀西大街31号 &amp;nbsp; &amp;nbsp; &amp;nbsp;62552277 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 培教图书中心 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区海淀路甲41号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62648924 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 职业教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京西城区新街口三不老胡同1号 &amp;nbsp; &amp;nbsp; &amp;nbsp;66183923 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 清河书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区清河镇2街 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62913229 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 博文书社 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区琉璃厂40号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;63044886 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 朝阳门书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区朝内大街83号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;64041303 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 惠览书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东皇城根市场街 &amp;nbsp; &amp;nbsp; &amp;nbsp;65227936 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 温泉书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区温泉 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62456536 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 蓝岛书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区朝外大街蓝岛大厦五层 &amp;nbsp; &amp;nbsp; &amp;nbsp;65044422-2568 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 蒲黄榆书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京丰台区蒲黄榆二里10号楼 &amp;nbsp; &amp;nbsp; &amp;nbsp;67631752 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新古城书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京石景山区古城大街 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68874112 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新世纪教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区骑河楼北巷6号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65250234 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新世纪教育书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区灯市口大街53号 &amp;nbsp; &amp;nbsp; &amp;nbsp;65136831 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店小庄分店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区小庄 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65021253 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店丰台分店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京丰台区丰台镇电报局街甲48号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63811129 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店总店公司 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区广外马连道红莲南里30号 63268659 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华书店海淀区店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区南路中四楼 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62566190 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新华音像书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京东城区东四北大街117号 &amp;nbsp; &amp;nbsp; &amp;nbsp;64045715 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新视角电子科技书店 &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区新外大街19号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;62053030 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 管庄书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京朝阳区管庄 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;65761978 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 燕京书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京宣武区广内大街临35号 &amp;nbsp; &amp;nbsp; &amp;nbsp;63015297 <br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 魏公村书店 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;北京海淀区魏公村9号 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;68420020</font><br />]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[如何在同一页面上设置多种不同链接外观]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3638891.html" />  
<issued>2005-11-24T22:35:30Z</issued> 
<created>2005-11-24T22:35:30Z</created> 
<modified>2005-11-24T22:35:30Z</modified>
<id>tag:harrymao.blogchina.com,2005://3638891</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>生活</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[&amp;lt;html&amp;gt;<br />&amp;lt;head&amp;gt;<br />&amp;lt;title&amp;gt;Link style&amp;lt;/title&amp;gt;<br />&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=gb2312&amp;quot;&amp;gt;<br />&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;<br />&amp;lt;!--<br />a.style1:link {<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;color: #FF0000;<br />}<br />a.style1:hover {<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;color: #0000FF;<br />}<br />a.style2:link {<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;color: #000000;<br />}<br />a.style2:hover {<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;color: #FFFFFF;<br />}<br />a.style3:link {<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;color: #FF00FF;<br />}<br />a.style3:hover {<br />&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;color: #cccccc;<br />}<br />--&amp;gt;<br />&amp;lt;/style&amp;gt;<br />&amp;lt;/head&amp;gt;<br /><br />&amp;lt;body&amp;gt;<br />&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;style1&amp;quot;&amp;gt;我是网管&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;<br />&amp;lt;/p&amp;gt;<br />&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;style2&amp;quot;&amp;gt;我是网管&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;<br />&amp;lt;/p&amp;gt;<br />&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;style3&amp;quot;&amp;gt;我是网管&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;<br />&amp;lt;/p&amp;gt;<br />&amp;lt;/body&amp;gt;<br />&amp;lt;/html&amp;gt;<br />]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[比较漂亮的链接样式]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3638806.html" />  
<issued>2005-11-24T22:30:25Z</issued> 
<created>2005-11-24T22:30:25Z</created> 
<modified>2005-11-24T22:30:25Z</modified>
<id>tag:harrymao.blogchina.com,2005://3638806</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>生活</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[<div class="HtmlCode" title="点击运行该代码！" style="CURSOR: pointer" onclick="function anonymous()
{
preWin=window.open('','','');preWin.document.open();preWin.document.write(this.innerText);preWin.document.close();
}" ;=""><p>&amp;lt;style&amp;gt;<br />&amp;lt;!--<br />body&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { font-family: Tahoma; font-size: 8pt }<br />.leftmenu {<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width:150px;<br />}<br />.leftmenu li {<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display: inline;<br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; white-space: nowrap;<br />}</p><p>.leftmenu span,<br />.leftmenu a:active,<br />.leftmenu a:visited,<br />.leftmenu a:link {<br />&amp;nbsp;display: block;<br />&amp;nbsp;text-decoration: none;<br />&amp;nbsp;margin: 6px 10px 6px 0px;<br />&amp;nbsp;padding: 2px 6px 2px 6px;<br />&amp;nbsp;color: #00527f;<br />&amp;nbsp;background-color: #d9e8f3;<br />&amp;nbsp;border: 1px solid #004266;<br />}</p><p>.leftmenu a:hover {<br />&amp;nbsp;color: red;<br />&amp;nbsp;background-color: #8cbbda;<br />}</p><p>.leftmenu span {<br />&amp;nbsp;color: #a13100;<br />&amp;nbsp;}</p><p>--&amp;gt;<br />&amp;lt;/style&amp;gt;<br />&amp;lt;/head&amp;gt;<br />&amp;lt;ul class=&amp;quot;leftmenu&amp;quot;&amp;gt;<br />&amp;lt;li&amp;gt;&amp;lt;a target=&amp;quot;_blank&amp;quot; href=&amp;quot;<a href="http://www.microsoft.com/china">www.Microsoft.com</a">http://www.microsoft.com/china&amp;quot;&amp;gt;www.Microsoft.com&amp;lt;/a</a>&amp;gt;<br />&amp;lt;li&amp;gt;&amp;lt;a target=&amp;quot;_blank&amp;quot; href=&amp;quot;<a href="http://www.google.com">www.google.com</a">http://www.google.com&amp;quot;&amp;gt;www.Google.com&amp;lt;/a</a>&amp;gt;<br />&amp;lt;li&amp;gt;&amp;lt;a target=&amp;quot;_blank&amp;quot; href=&amp;quot;<a href="http://www.mtpu.com/">www.mtpu.com</a">http://www.mtpu.com/&amp;quot;&amp;gt;www.mtpu.com&amp;lt;/a</a>&amp;gt;<br />&amp;lt;li&amp;gt;&amp;lt;a target=&amp;quot;_blank&amp;quot; href=&amp;quot;<a href="http://www.mtpu.com/">www.mtpu.com</a">http://www.mtpu.com/&amp;quot;&amp;gt;www.mtpu.com&amp;lt;/a</a>&amp;gt;<br />&amp;lt;/ul&amp;gt;</p></div>]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[PHP中如何使用header发送头部信息]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3464413.html" />  
<issued>2005-11-09T10:06:48Z</issued> 
<created>2005-11-09T10:06:48Z</created> 
<modified>2005-11-09T10:06:48Z</modified>
<id>tag:harrymao.blogchina.com,2005://3464413</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>学习</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[在照彭武兴先生的《PHP BIBLE》中所述，header可以送出Status标头，如 <br /><br />header(&amp;quot;Status: 404 Not Found&amp;quot;); <br /><br />?&amp;gt; <br /><br />就可以让用户浏览器出现文件找不到的404错误，但是我试了这样是不行的。 <br /><br />后来我到w3.org上查了http的相关资料，终于试出来了如何Header出状态代码(Status)，与大家分享。 <br /><br />其实应该是这样的: <br /><br />Header(&amp;quot;http/1.1 403 Forbidden&amp;quot;); <br /><br />?&amp;gt; <br /><br />第一部分为HTTP协议的版本(HTTP-Version) <br /><br />第二部分为状态代码(Status) <br /><br />第三部分为原因短语(Reason-Phrase) <br /><br />三部分中间用一个空格分开，且中间不能有回车,第一部分和第二部分是必需的，第三部分则是给人看的，可写可不写甚至乱写。 <br /><br />还有，这一句的输出必须在Html文件的第一行。 <br /><br />下面我给出各代码所代表的意思(是从w3.org上查到的,够权威了): <br /><br />　 * 1xx: Informational - Request received, continuing process <br /><br />　 * 2xx: Success - The action was successfully received, understood, <br /><br />　　and accepted <br /><br />　 * 3xx: Redirection - Further action must be taken in order to <br /><br />　　complete the request <br /><br />　 * 4xx: Client Error - The request contains bad syntax or cannot be <br /><br />　　fulfilled <br /><br />　 * 5xx: Server Error - The server failed to fulfill an apparently <br /><br />　　valid request <br /><br /><br />　　　　　　 | &amp;quot;100&amp;quot; ; Continue <br /><br />　　　　　　 | &amp;quot;101&amp;quot; ; Switching Protocols <br /><br />　　　　　　 | &amp;quot;200&amp;quot; ; OK <br /><br />　　　　　　 | &amp;quot;201&amp;quot; ; Created <br /><br />　　　　　　 | &amp;quot;202&amp;quot; ; Accepted <br /><br />　　　　　　 | &amp;quot;203&amp;quot; ; Non-Authoritative Information <br /><br />　　　　　　 | &amp;quot;204&amp;quot; ; No Content <br /><br />　　　　　　 | &amp;quot;205&amp;quot; ; Reset Content <br /><br />　　　　　　 | &amp;quot;206&amp;quot; ; Partial Content <br /><br />　　　　　　 | &amp;quot;300&amp;quot; ; Multiple Choices <br /><br />　　　　　　 | &amp;quot;301&amp;quot; ; Moved Permanently <br /><br />　　　　　　 | &amp;quot;302&amp;quot; ; Moved Temporarily <br /><br />　　　　　　 | &amp;quot;303&amp;quot; ; See Other <br /><br />　　　　　　 | &amp;quot;304&amp;quot; ; Not Modified <br /><br />　　　　　　 | &amp;quot;305&amp;quot; ; Use Proxy <br /><br />　　　　　　 | &amp;quot;400&amp;quot; ; Bad Request <br /><br />　　　　　　 | &amp;quot;401&amp;quot; ; Unauthorized <br /><br />　　　　　　 | &amp;quot;402&amp;quot; ; Payment Required <br /><br />　　　　　　 | &amp;quot;403&amp;quot; ; Forbidden <br /><br />　　　　　　 | &amp;quot;404&amp;quot; ; Not Found <br /><br />　　　　　　 | &amp;quot;405&amp;quot; ; Method Not Allowed <br /><br />　　　　　　 | &amp;quot;406&amp;quot; ; Not Acceptable <br /><br />　　　　　　 | &amp;quot;407&amp;quot; ; Proxy Authentication Required <br /><br />　　　　　　 | &amp;quot;408&amp;quot; ; Request Time-out <br /><br />　　　　　　 | &amp;quot;409&amp;quot; ; Conflict <br /><br />　　　　　　 | &amp;quot;410&amp;quot; ; Gone <br /><br />　　　　　　 | &amp;quot;411&amp;quot; ; Length Required <br /><br />　　　　　　 | &amp;quot;412&amp;quot; ; Precondition Failed <br /><br />　　　　　　 | &amp;quot;413&amp;quot; ; Request Entity Too Large <br /><br />　　　　　　 | &amp;quot;414&amp;quot; ; Request-URI Too Large <br /><br />　　　　　　 | &amp;quot;415&amp;quot; ; Unsupported Media Type <br /><br />　　　　　　 | &amp;quot;500&amp;quot; ; Internal Server Error <br /><br />　　　　　　 | &amp;quot;501&amp;quot; ; Not Implemented <br /><br />　　　　　　 | &amp;quot;502&amp;quot; ; Bad Gateway <br /><br />　　　　　　 | &amp;quot;503&amp;quot; ; Service Unavailable <br /><br />　　　　　　 | &amp;quot;504&amp;quot; ; Gateway Time-out <br /><br />　　　　　　 | &amp;quot;505&amp;quot; ; HTTP Version not supported<br />&amp;nbsp; ]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[PHP服务器变量]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3464092.html" />  
<issued>2005-11-09T09:30:38Z</issued> 
<created>2005-11-09T09:30:38Z</created> 
<modified>2005-11-09T09:30:38Z</modified>
<id>tag:harrymao.blogchina.com,2005://3464092</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>学习</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[<p>&amp;lt;?php<br />/****************************************************************<br />*<br />* PHP 服务器变量：$_SERVER<br />*<br />\****************************************************************</p><p>&amp;nbsp;<br />echo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; <br />&amp;nbsp;&amp;nbsp;&amp;nbsp; <br />&amp;nbsp;$_SERVER['PHP_SELF'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp; #当前正在执行脚本的文件名，与 document root相关。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['argv'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #传递给该脚本的参数。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['argc'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #包含传递给程序的命令行参数的个数（如果运行在命令行模式）。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['GATEWAY_INTERFACE'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #服务器使用的 CGI 规范的版本。例如，“CGI/1.1”。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SERVER_NAME'].'&amp;lt;br/&amp;gt;'&amp;nbsp;&amp;nbsp; #当前运行脚本所在服务器主机的名称。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SERVER_SOFTWARE'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #服务器标识的字串，在响应请求时的头部中给出。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SERVER_PROTOCOL'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #请求页面时通信协议的名称和版本。例如，“HTTP/1.0”。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['REQUEST_METHOD'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #访问页面时的请求方法。例如：“GET”、“HEAD”，“POST”，“PUT”。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['QUERY_STRING'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #查询(query)的字符串。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['DOCUMENT_ROOT'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #当前运行脚本所在的文档根目录。在服务器配置文件中定义。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['HTTP_ACCEPT'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #当前请求的 Accept: 头部的内容。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['HTTP_ACCEPT_CHARSET'].'&amp;lt;BR/&amp;gt;' #当前请求的 Accept-Charset: 头部的内容。例如：“iso-8859-1,*,utf-8”。</p><p>&amp;nbsp;.$_SERVER['HTTP_ACCEPT_ENCODING'].'&amp;lt;BR/&amp;gt;'#当前请求的 Accept-Encoding: 头部的内容。例如：“gzip”。</p><p>&amp;nbsp;.$_SERVER['HTTP_ACCEPT_LANGUAGE'].'&amp;lt;BR/&amp;gt;'#当前请求的 Accept-Language: 头部的内容。例如：“en”。</p><p>&amp;nbsp;.$_SERVER['HTTP_CONNECTION'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #当前请求的 Connection: 头部的内容。例如：“Keep-Alive”。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['HTTP_HOST'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp; #当前请求的 Host: 头部的内容。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['HTTP_REFERER'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #链接到当前页面的前一页面的 URL 地址。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['HTTP_USER_AGENT'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #当前请求的 User_Agent: 头部的内容。<br />&amp;nbsp;&amp;nbsp;<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['REMOTE_ADDR'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #正在浏览当前页面用户的 IP 地址。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['REMOTE_HOST'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #正在浏览当前页面用户的主机名。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['REMOTE_PORT'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #用户连接到服务器时所使用的端口。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SCRIPT_FILENAME'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #当前执行脚本的绝对路径名。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SERVER_ADMIN'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #管理员信息</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SERVER_PORT'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #服务器所使用的端口</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SERVER_SIGNATURE'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #包含服务器版本和虚拟主机名的字符串。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['PATH_TRANSLATED'].'&amp;lt;BR/&amp;gt;'&amp;nbsp; #当前脚本所在文件系统（不是文档根目录）的基本路径。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['SCRIPT_NAME'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #包含当前脚本的路径。这在页面需要指向自己时非常有用。</p><p>&amp;nbsp;&amp;nbsp;&amp;nbsp; .$_SERVER['REQUEST_URI'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; #访问此页面所需的 URI。例如，“/index.html”。</p><p>&amp;nbsp;.$_SERVER['PHP_AUTH_USER'].'&amp;lt;BR/&amp;gt;'&amp;nbsp;&amp;nbsp; <br />&amp;nbsp;#当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的用户名。</p><p>&amp;nbsp;.$_SERVER['PHP_AUTH_PW'].'&amp;lt;BR/&amp;gt;'<br />&amp;nbsp;#当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的密码。</p><p>&amp;nbsp;.$_SERVER['AUTH_TYPE'].'&amp;lt;BR/&amp;gt;'<br />&amp;nbsp;#当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是认证的类型。<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; ;</p><p><br />?&amp;gt;</p>]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[MySQL管理]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3462059.html" />  
<issued>2005-11-08T22:37:33Z</issued> 
<created>2005-11-08T22:37:33Z</created> 
<modified>2005-11-08T22:37:33Z</modified>
<id>tag:harrymao.blogchina.com,2005://3462059</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>学习</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[<p style="TEXT-INDENT: 2em">对于内容驱动的网站，设计好坏的关键是关系型数据库。在这个教程中，我们已经使用了MySQL关系型数据库管理系统(RDBMS)建立了我们的数据库。对于网站的开发者来说，MySQL是一个较受欢迎的选择，这不仅是因为它对于任何平台上的非商业应用都是免费的，而且也因为它的架设和使用非常的简单。正如我们在第一章中所看到的那样，根据正确的指导，一个新的用户可以在不超过30分钟的时间内架设好一个MySQL服务，并将其运行起来(对于一个有经验的用户甚至只要10分钟！)。</p><table cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td align="right"><a href="http://adfarm.mediaplex.com/ad/ck/4080-22906-9520-28?cn=tom;list_130x300;hp&amp;mpro=http://www.ebay.com.cn" target="_blank"></a><!--jd/eachnet/a--></td></tr></tbody></table><p style="TEXT-INDENT: 2em">如果你想做的仅仅是架设一个MySQL服务环境，以用来做一些例子和练习，那么我们在第一章安装时所使用的初始化设置对你已经足够了。但是，如果你是想建立一个真正的用于Web站点的数据库--也许这个站点对于你的公司很重要--那么你还需要学习一些有关MySQL的知识。</p><p style="TEXT-INDENT: 2em">对于作为基于Internet的企业的一部分的商业事务来说，数据的备份是很重要的。不幸的是，因为备份的工作对于一个管理员来说往往是不太感兴趣的，人们总是无法认清它的重要性，于是这方面的工作对于一个应用程序往往不能做得“足够好”。如果直到现在你还不明白“我们是不是需要备份我们的数据库”，或者是你认为“数据库会和其它东西一起被备份”，那么你得好好看看这一章的内容了。我们将会说明为什么普通的文件备份方案对于许多MySQL服务是远远不够的，然后我们会介绍备份和恢复一个MySQL数据库的“正确的方法”。</p><p style="TEXT-INDENT: 2em">在第一章中，我们设置了一个MySQL服务并通过一个有口令的‘root’来连接这个数据库。MySQL的‘root’用户(顺便提一下，不要与Unix的‘root’用户混淆)对于所有的库和表都有读/写的权限。在许多情况下，我们需要建立其它的只能访问某些数据库和数据表的用户，我们还需要对这种访问进行限制(例如，对指定的表只能直接只读访问)。在这一章中，我们将学习如果使用两个新的MySQL的命令：GRANT和REVOKE来完成这些工作。</p><p style="TEXT-INDENT: 2em">在一些情况下，例如由于电源的问题，MySQL数据库可能被损坏。这样的损坏并不总是意味着必须使用备份来恢复。我们将会学习到如果利用MySQL数据库的检查和修复功能来解决简单的数据库损坏。</p><p style="TEXT-INDENT: 2em"><b>为什么标准的备份是不够的</b></p><p style="TEXT-INDENT: 2em">和Web服务器一样，绝大多数的MySQL服务器也必须不间断地在线。这使得MySQL数据库的备份显得很重要。因为MySQL服务使用cache和缓冲区来提高对存储在磁盘上的数据库文件更新的效率，所以文件的内容和当前数据库的内容可能并不完全一致。而标准的备份程序仅仅包括对系统和数据文件的拷贝，这种对MySQL数据文件的备份并不能完全满足我们的需要，因为它们不能保证拷贝的文件可以在系统崩溃时的确能够正常地使用。</p><p style="TEXT-INDENT: 2em">此外，因为许多的数据库必须整天地接受信息，标准的备份只能提供数据库数据的“瞬间的”映象。如果MySQL数据库文件被损坏，或是变得不可用，在最后一次备份之后添加的信息将会被丢失。在许多情况下，例如对于一个电子商务网站的处理用户订单的数据库，这样的丢失是不可容忍的。</p><p style="TEXT-INDENT: 2em">MySQL中的工具可以对数据进行实时的备份，而在备份进行时，不会影响服务的效率。不幸的是，这需要你 为你的MySQL数据配置一个特殊的备份系统。而完全与你已制定的其它数据备份方案无关。然而，和任何一个好的备份系统一样，在你真正用到它的时候，你会发现现在的麻烦是值得的。</p><p style="TEXT-INDENT: 2em">在这一章中，我们提供的指导是用于一个运行Linux或其它基于Unix的操作系统的计算机上的。如果你使用的是Windows，方法也基本上一样，只是其中的有些命令必须改动。</p><p style="TEXT-INDENT: 2em"><b>使用mysqldump进行数据库备份</b></p><p style="TEXT-INDENT: 2em">除了mysqld以外，MySQL服务器以及mysql(MySQL的客户端)，在安装时还会产生很多有用的程序。例如，在前面，我们已经看到的mysqladmin，就是负责控制和搜集有关正在运行的MySQL服务的信息的程序。</p><p style="TEXT-INDENT: 2em">mysqldump是另一个这样的程序。当它运行时，它会连接到一个MySQL服务(就和mysql程序和PHP语言所做的一样)并下载指定的数据库的全部内容。然后它会输出一系列的SQL的CREATE TABLE命令和INSERT命令，在一个空的MySQL数据库中运行这些命令，就可以建立与当初的数据库内容完全一样的一个MySQL数据库。</p><p style="TEXT-INDENT: 2em">通过重定向mysqldump的输出到一个文件，你可以存储一个数据库的“镜像”以作为备份。下面的命令是用一个口令为mypass的root用户连接到一个运行在myhost上的MySQL服务，并将名为dbname的数据库的备份存储到dbname_backup.sql文件中：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% mysqldump -h myhost -u root -pmypass dbname &amp;gt; dbname_backup.sql</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">要恢复这样的一个数据库，只需要运行下面的命令：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% mysqladmin -h myhost -u root -pmypass create dbname<br />% mysql -h myhost -u root -pmypass dbname &amp;lt; dbname_backup.sql<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">第一个命令使用mysqladmin程序建立一个数据库。第二个命令连接到MySQL服务并使用通常的mysql程序，并将刚才得到的备份文件作为其中执行的命令。</p><p style="TEXT-INDENT: 2em">通过这种方法，我们可以使用mysqldump建立我们数据库的备份。因为mysqldump通过与MySQL服务的连接产生这个备份，这肯定要比直接访问MySQL数据目录下的数据库文件来得更为安全，因为这样的备份可以确保是数据库的一个有效的拷贝，而不仅仅是数据库文件的拷贝。</p><p style="TEXT-INDENT: 2em">剩下来的问题就是如何解决这个“镜像”与一个不断更新的数据库之间的同步。要做到这一点，你需要命令服务保持一个变更日志。</p><p style="TEXT-INDENT: 2em"><b>利用变更日志进行增量备份</b></p><p style="TEXT-INDENT: 2em">正如我们前面提到的，在很多情况下，我们使用的MySQL数据库会造成数据的丢失--甚至有的时候会丢失很重要的数据。在这样的情况下，我们必须找到一种方法保持我们使用上面介绍的方法用mysqldump制作的备份与当前数据库之间的同步。而解决方案就是让MySQL服务维持一个更新日志。一个更新日志是一个关于所有数据库接受到的可能改变数据库内容的查询的记录。这将包括INSERT、UPDATE和CREATE <br />TABLE语句，但是不包括SELECT语句。</p><p style="TEXT-INDENT: 2em">通常的想法是维持一个变更日志，这样当数据库崩溃时，你的恢复过程应该是这样的：首先使用备份(使用mysqldump命令产生)，然后使用备份之后的变量日志。</p><p style="TEXT-INDENT: 2em">你也可以使用变更日志撤消错误操作。例如，如果一个合作者告诉你他错误地使用了一个DROP TABLE命令，你可以对变更日志进行编辑以删除这个命令，然后使用备份和修改过的变更日志进行恢复。通过这种方法，你甚至可以保持这次意外事故之后其它表的变化。作为预防措施，你也许还要收回你的合作者的 <br />DROP权限(在下一部分你将看到该怎么做)。</p><p style="TEXT-INDENT: 2em">告诉MySQL服务器维持一个变更日志是非常简单的，你只需要在服务的命令行中增加一个选项：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% safe-mysqld --log-update=update</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">上面的命令启动MySQL服务，并告诉它在服务器的数据目录下(如果你依照第一章中指导配置你的服务器的话，这个目录将是/usr/local/mysql/var)建立名为update.001、update.002……的文件。一个新的这样的文件将在服务器每一次刷新它的日志文件时被建立(通常，这是指服务每一次重启动时)。如果你想将你的变更日志存储到另一个地方(通常这是一个好主意--如果包含你的数据目录的磁盘出了问题，你肯定不能指望它还能好好保存你的备份！)，你可以指定变更日志的路径。</p><p style="TEXT-INDENT: 2em">但是，如果你的MySQL服务器是不间断地工作的，在启动MySQL服务时你也许还需要一些系统配置。在这种情况下，增加一个命令行选择可能变得很困难。建立变更日志的另一个简单的方法是在MySQL配置文件中增加相应的选项。</p><p style="TEXT-INDENT: 2em">如果你还不清楚&amp;quot;什么是MySQL配置文件&amp;quot;，不要担心。事实上，在此之前，我们一直没用到过这样的配置文件。要建立这个文件，以我们在第一章中建立的MySQL用户(如果你是完全根据指导做的，这应该是mysqlusr)登录到Linux。使用你习惯的文本编辑器，在你的MySQL数据目录下(除非你选择了其它地方安装MySQL，这应该是指/usr/local/mysql/var)建立一个名为my.cnf的文件。在这个文件中，输入下面一行：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">[mysqld]log-update=/usr/backups/mysql/update</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">当然，你可以自由地指定你的日志文件所写入的位置。保存这个文件并重启你的MySQL服务。从现在开始，MySQL服务运行的情况将和你在命令行中使用了--log-update选项一样。</p><p style="TEXT-INDENT: 2em">很明显，对于一个服务来说，变更日志可能占用大量的空间。因为这个原因以及MySQL不能自动地在建立新的日志文件删除旧的日志文件，你需要自己管理你的变更日志文件。例如，下面的Unix <br />shell脚本，会删除所有一星期以前更改的变更日志文件，然后通知MySQL刷新它的日志文件。</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">#! /bin/sh<br />find /usr/backups/mysql/ -name &amp;quot;update.[0-9]*&amp;quot;<br />-type f -mtime +6 | xargs rm -f<br />/usr/local/mysql/bin/mysqladmin -u root<br />-ppassword flush-logs<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">如果当前的日志文件被删除，最后一步(刷新日志文件)将建立一个新的变更日志，这意味着MySQL服务一直在线，而且在过去的一周中，没有收到任何改变数据库内容的查询。</p><p style="TEXT-INDENT: 2em">如果你是一个有经验的用户，使用“时钟守护程序”设置一个脚本来定期(比方说，每周一次)执行数据库的备份并删除旧的变更日志应该是相当简单的。如果你还需要一点帮助，请教你当地的Unix权威。'MySQL' <br />by Paul DuBois中的MySQL管理一章中对设置这样的一个系统也有详细的指南。</p><p style="TEXT-INDENT: 2em">假定你已经有了一个备份以及在此之后的变更日志的一个拷贝，恢复你的数据库将是非常简单的。在建立一个空数据库后应用我们在上一节中讨论的方法导入备份，然后使用带--one-database命令行选项的mysql命令导入变更日志。这会指示服务器仅仅运行变更日志中与我们想要恢复的数据库(在这个例子中是指dbname)相关的查询：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% mysql -u root -ppassword --one-database dbname &amp;lt; update.100<br />% mysql -u root -ppassword --one-database dbname &amp;lt; update.102<br />...<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em"><b>MySQL访问控制</b></p><p style="TEXT-INDENT: 2em">在这个教程的早些时候，我们曾经提到一个叫做mysql的数据库，在每一个MySQL服务中都包含这个数据库，它是用来保存用户的相关信息、他们的口令以及他们的权限的。但是，在此之前，我们一直使用root用户登录到MySQL服务，这个用户可以访问所有的数据库和数据表。</p><p style="TEXT-INDENT: 2em">如果你的MySQL服务仅仅被通过PHP访问，而用你对于将root用户的口令告诉什么人很小心，那么root帐号可能已经足够了。但是，如果一个MySQL服务是被许多人共享的，(例如，一个Web主机希望对它的每一个用户提供同一个MySQL服务)，为不同的用户设置相应的访问权限就显得很重要了。</p><p style="TEXT-INDENT: 2em">在MySQL参考手册的第六章中详细介绍了MySQL的访问控制系统。从原理上来说，用户的访问是由mysql数据库中的五个数据表来管理的：user、db、host、tables_priv和columns_priv。如果你想直接使用INSERT、UPDATE和DELETE语句来编辑这些表，我建议你先阅读一下MySQL指南中的相关章节。而从3.22.11版本开始，MySQL提供了简单的方法来管理用户的访问。使用MySQL提供的非标准的命令GRANT和REVOKE，你可以建立用户并赋予其相应的权限，而不必关心它在前面提到的五个表中的存储形式。</p><p style="TEXT-INDENT: 2em">使用GRANT</p><p style="TEXT-INDENT: 2em">GRANT命令用来建立新用户，指定用户口令并增加用户权限。其格式如下：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; GRANT &amp;lt;privileges&amp;gt; ON &amp;lt;what&amp;gt;<br />-&amp;gt; TO &amp;lt;user&amp;gt; [IDENTIFIED BY &amp;quot;&amp;lt;password&amp;gt;&amp;quot;]<br />-&amp;gt; [WITH GRANT OPTION];<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">正如你看到的，在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍，并最终给出一些例子以让你对它们的协同工作有一个了解。</p><p style="TEXT-INDENT: 2em">&amp;lt;privileges&amp;gt;是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型：</p><p style="TEXT-INDENT: 2em">数据库/数据表/数据列权限：<br />　　ALTER: 修改已存在的数据表(例如增加/删除列)和索引。<br />　　CREATE: 建立新的数据库或数据表。<br />　　DELETE: 删除表的记录。<br />　　DROP: 删除数据表或数据库。<br />　　INDEX: 建立或删除索引。<br />　　INSERT: 增加表的记录。<br />　　SELECT: 显示/搜索表的记录。<br />　　UPDATE: 修改表中已存在的记录。<br />　　全局管理权限：<br />　　FILE: 在MySQL服务器上读写文件。<br />　　PROCESS: 显示或杀死属于其它用户的服务线程。<br />　　RELOAD: 重载访问控制表，刷新日志等。<br />　　SHUTDOWN: 关闭MySQL服务。<br />　　特别的权限：<br />　　ALL: 允许做任何事(和root一样)。<br />　　USAGE: 只允许登录--其它什么也不允许做。</p><p style="TEXT-INDENT: 2em">这些权限所涉及到的MySQL的特征，其中的一些我们至今还没看到，而其中的绝大部分是你所熟悉的。</p><p style="TEXT-INDENT: 2em">&amp;lt;what&amp;gt; 定义了这些权限所作用的区域。*.*意味着权限对所有数据库和数据表有效。dbName.*意味着对名为dbName的数据库中的所有数据表有效。dbName.tblName意味着仅对名为dbName中的名为tblName的数据表有效。你甚至还可以通过在赋予的权限后面使用圆括号中的数据列的列表以指定权限仅对这些列有效(在后面我们将看到这样的例子)。</p><p style="TEXT-INDENT: 2em">&amp;lt;user&amp;gt;指定可以应用这些权限的用户。在MySQL中，一个用户通过它登录的用户名和用户使用的计算机的主机名/IP地址来指定。这两个值都可以使用%通配符(例如kevin@%将允许使用用户名kevin从任何机器上登录以享有你指定的权限)。</p><p style="TEXT-INDENT: 2em">&amp;lt;password&amp;gt;指定了用户连接MySQL服务所用的口令。它被用方括号括起，说明IDENTIFIED BY &amp;quot;&amp;lt;password&amp;gt;&amp;quot;在GRANT命令中是可选项。这里指定的口令会取代用户原来的密码。如果没有为一个新用户指定口令，当他进行连接时就不需要口令。</p><p style="TEXT-INDENT: 2em">这个命令中可选的WITH GRANT OPTION部分指定了用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。请小心使用这项功能--虽然这个问题可能不是那么明显！例如，两个都拥有这个功能的用户可能会相互共享他们的权限，这也许不是你当初想看到的。</p><p style="TEXT-INDENT: 2em">让我们来看两个例子。建立一个名为dbmanager的用户，他可以使用口令managedb从server.host.net连接MySQL，并仅仅可以访问名为db的数据库的全部内容(并可以将此权限赋予其他用户)，这可以使用下面的GRANT命令：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; GRANT ALL ON db.*<br />-&amp;gt; TO dbmanager@server.host.net<br />-&amp;gt; IDENTIFIED BY &amp;quot;managedb&amp;quot;<br />-&amp;gt; WITH GRANT OPTION;<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">现在改变这个用户的口令为funkychicken，命令格式如下：<br />　　mysql&amp;gt; GRANT USAGE ON *.*<br />　　-&amp;gt; TO dbmanager@server.host.net<br />　　-&amp;gt; IDENTIFIED BY &amp;quot;funkychicken&amp;quot;;</p><p style="TEXT-INDENT: 2em">请注意我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录)，但是用户已经存在的权限不会被改变。</p><p style="TEXT-INDENT: 2em">现在让我们建立一个新的名为jessica的用户，他可以从host.net域的任意机器连接到MySQL。他可以更新数据库中用户的姓名和email地址，但是不需要查阅其它数据库的信息。也就是说他对db数据库具有只读的权限(例如，SELECT)，但是他可以对Users表的name列和email列执行UPDATE操作。命令如下：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; GRANT SELECT ON db.*<br />-&amp;gt; TO jessica@%.host.net<br />-&amp;gt; IDENTIFIED BY &amp;quot;jessrules&amp;quot;;<br />mysql&amp;gt; GRANT UPDATE (name,email) ON db.Users<br />-&amp;gt; TO jessica@%.host.net;<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">请注意在第一个命令中我们在指定Jessica可以用来连接的主机名时使用了%(通配符)符号。此外，我们也没有给他向其他用户传递他的权限的能力，因为我们在命令的最后没有带上WITH GRANT OPTION。第二个命令示范了如何通过在赋予的权限后面的圆括号中用逗号分隔的列的列表对特定的数据列赋予权限。</p><p style="TEXT-INDENT: 2em">使用REVOKE</p><p style="TEXT-INDENT: 2em">正如你所预期的那样，REVOKE命令是用来去除一个用户以前被赋予的权限的。命令的语法如下：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; REVOKE &amp;lt;privileges&amp;gt; [(&amp;lt;columns&amp;gt;)]<br />-&amp;gt; ON &amp;lt;what&amp;gt; FROM &amp;lt;user&amp;gt;;<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">这个命令中各部分的功能和在上面的GRANT命令中时一样。要去除Jessica的合作者的DROP权限(例如，如果他经常错误地删除数据库和表)，你可以使用下面的命令：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; REVOKE DROP ON *.* FROM idiot@%.host.net;</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">去除一个用户的登录权限大概是唯一不能使用REVOKE的。REVOKE ALL ON *.*会去除用户的所有权限，但是他还可以登录，要完全地删除一个用户，你需要在user表中删除相应的记录：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; DELETE FROM user<br />-&amp;gt; WHERE User=&amp;quot;idiot&amp;quot; AND Host=&amp;quot;%.host.net&amp;quot;;<br /><br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em"><b>访问控制技巧</b></p><p style="TEXT-INDENT: 2em">由于MySQL中访问控制系统工作的方法的影响，在建立你的用户之前你必须知道两个特征。</p><p style="TEXT-INDENT: 2em">当建立的用户只能从MySQL服务运行的计算机上登录到MySQL服务(也就是说，你需要他们telnet到服务器并在那里运行MySQL的客户端程序，或者是使用象PHP这样的服务器端脚本语言进行通信)，你大概会问自己GRANT命令的&amp;lt;user&amp;gt;部分应该填什么内容。如果服务是运行在www.host.net。你是应该将用户设置为username@www.host.net还是username@localhost呢？</p><p style="TEXT-INDENT: 2em">答案是，你不能依赖其中的任何一种来处理任何连接。从理论上来说，如果用户在连接时(无论是使用mysql客户端还是使用PHP的mysql_connect函数)指定了主机名，这个主机名必须与访问控制系统中的记录匹配。但是因为你也许不想强迫你的用户指定主机名(事实上，mysql客户端的用户也许根本不会指定主机名)，你最好使用下面这种工作环境。</p><p style="TEXT-INDENT: 2em">对于用户需要能够从MySQL服务在其上运行的机器上连接MySQL的情况，在MySQL访问控制系统中建立两个用户记录：一个使用实际的主机名(例如，username@www.host.net)，另一个使用localhost(例如，username@localhost)，当然，你需要为两个用户分别grant/revoke所有的权限。</p><p style="TEXT-INDENT: 2em">MySQL管理者所要面对的另一个带有普通性的问题是一个其中的主机名使用了通配符的用户记录(例如，前面提到jessica@%.host.net)没起作用。发生这种情况，一般是由于MySQL访问控制系统中记录的优先级的问题。具体地说，越具体的主机名优先级越高(例如，www.host.net是最具体的，%.host.net是比较具体的，而%是最不具体的)。</p><p style="TEXT-INDENT: 2em">在一个新安装后，MySQL访问控制系统包含两个匿名用户记录(它允许在当前主机上使用任何用户名进行连接--这两个记录分别支持从localhost连接以及从服务器的实现的主机名进行连接)，以及两个root用户目录。我们上面讨论的情况发生时是由于匿名用户目录的优先级比我们的新记录高，因为他们的主机名更具体。</p><p style="TEXT-INDENT: 2em">让我们看看www.host.net上user表的内容，我们假定已经添加了Jessica的记录。数据行是按照MySQL服务在确认连接时的优先级排列的：</p><p style="TEXT-INDENT: 2em" /><div align="center"><img height="124" src="http://tech.tom.com/img/assets/1100/1214php_mysql8_01.gif" width="328" border="0" hsapce="0" /></div><p /><p style="TEXT-INDENT: 2em">正如你看到的，因为Jessica的记录的主机名最不具体，它的优先级最低。当Jessica试图从www.host.net连接时，MySQL服务将他的连接匹配为一个匿名用户记录(空白的User值与任何人匹配)。因为这些匿名记录不需要口令，而也许Jessica输入了他的口令，MySQL将拒绝这个连接。即使Jessica没有输入口令，他可能也只被给予了匿名用户的权限(非常有限)，而不是他原来被赋予的权限。</p><p style="TEXT-INDENT: 2em">解决这个问题的方法是，要么你删除匿名用户的记录(DELETE FROM user WHERE User=&amp;quot;&amp;quot;)，要么再为所有的可能从localhost连接的用户指定两条记录(例如，相对于localhost以及相对于服务器的实际主机名)：</p><p style="TEXT-INDENT: 2em" /><div align="center"><img height="151" src="http://tech.tom.com/img/assets/1100/1214php_mysql8_02.gif" width="328" border="0" hsapce="0" /></div><p /><p style="TEXT-INDENT: 2em">因为要为每个用户维护三个用户记录(以及相应的三套权限)会很麻烦，所以我们推荐你删除匿名用户，除非你需要用他们来完成什么特殊的应用：</p><p style="TEXT-INDENT: 2em" /><div align="center"><img height="96" src="http://tech.tom.com/img/assets/1100/1214php_mysql8_03.gif" width="327" border="0" hsapce="0" /></div><p /><p style="TEXT-INDENT: 2em"><b>被锁在外面？</b></p><p style="TEXT-INDENT: 2em">就象把钥匙丢失在车上一样，在花费了一个小时安装并调试好一个新的MySQL服务器之后忘记了口令的确是件麻烦事。幸运的是，如果你有访问MySQL运行的计算机的root权限，或者你能够使用运行MySQL服务的用户登录(如果你按照第一章中的指导，这是指mysqlusr)，那么不会出什么问题。按照下面的步骤，你可以获得服务的控制权。</p><p style="TEXT-INDENT: 2em">首先，你必须关闭MySQL服务。因为通常使用的mysqladmin需要用到你忘了的口令，你只能通过杀掉服务的进程来完成这项工作。使用ps命令或者看看服务的PID文件(在MySQL数据目录下)，确定MySQL服务的进程的ID，然后使用下面的命令终止它：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% kill &amp;lt;pid&amp;gt;</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">这里&amp;lt;pid&amp;gt;是MySQL服务的进程的ID。这样将可以终止服务。除非绝对必要，不要使用kill -9，因为这样有可能损坏你的表文件。如果你被迫只能这么做，下面将告诉你如何检查和修复那些文件。</p><p style="TEXT-INDENT: 2em">关闭了服务之后，你可以通过运行带--skip-grant-tables命令行选项的safe-mysqld (在Windows下使用mysqld或mysqld-nt)命令重启它。这将指示MySQL服务允许自由的访问，明显的，我们应该尽可能地短时间的使用这种模式运行服务，以避免固有的安全风险。</p><p style="TEXT-INDENT: 2em">连接成功后，改变你的root口令：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">mysql&amp;gt; USE mysql;<br />mysql&amp;gt; UPDATE user SET Password=PASSWORD(&amp;quot;newpassword&amp;quot;)<br />-&amp;gt; WHERE User=&amp;quot;root&amp;quot;;<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">最后，断开连接并指示MySQL服务重载授权表以接收新的口令：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% mysqladmin flush-privileges</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">现在一切都好了--甚至不会有人知道你干了什么。就象你虽然将钥匙丢在了车上，而你自己也在车上一样。</p><p style="TEXT-INDENT: 2em"><b>检查和修复MySQL数据文件</b></p><p style="TEXT-INDENT: 2em">由于临时断电，使用kill -9中止MySQL服务进程，或者是Jessica的朋友idiot@%.host.net又犯了一个错误，所有的这些都可能会毁坏MySQL的数据文件。如果在被干扰时，服务正在改变文件，文件可能会留下错误的或不一致的状态。因为这样的毁坏有时是不容易被发现的，当你发现这个错误时可能是很久以后的事了。于是，当你发现这个问题时，也许所有的备份都有同样的错误。</p><p style="TEXT-INDENT: 2em">MySQL参考手册的第十五章讲述了MySQL自带的myisamchk的功能，以及如何使用它检查和修复你的MySQL数据文件。虽然这一章对于每个想要搭建一个强壮的MySQL服务的人都是推荐阅读的，我们还是有必要在这里对其中的要点进行讨论。</p><p style="TEXT-INDENT: 2em">在我们继续之前，你必须意识到myisamchk程序对用来检查和修改的MySQL数据文件的访问应该是唯一的。如果MySQL服务正在使用某一文件，并对myisamchk正在检查的文件进行修改，myisamchk会误以为发生了错误，并会试图进行修复--这将导致MySQL服务的崩溃！这样，要避免这种情况的发生，通常我们需要在工作时关闭MySQL服务。作为选择，你也可以暂时关闭服务以制作一个文件的拷贝，然后在这个拷贝上工作。当你做完了以后，重新关闭服务并使用新的文件取代原来的文件(也许你还需要使用期间的变更日志)。</p><p style="TEXT-INDENT: 2em">MySQL数据目录不是太难理解的。每一个数据库对应一个子目录，每个子目录中包含了对应于这个数据库中的数据表的文件。每一个数据表对应三个文件，它们和表名相同，但是具有不同的扩展名。tblName.frm文件是表的定义，它保存了表中包含的数据列的内容和类型。tblName.MYD文件包含了表中的数据。tblName.MYI文件包含了表的索引(例如，它可能包含lookup表以帮助提高对表的主键列的查询)。</p><p style="TEXT-INDENT: 2em">要检查一个表的错误，只需要运行myisamchk(在MySQL的bin目录下)并提供文件的位置和表名，或者是表的索引文件名：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% myisamchk /usr/local/mysql/var/dbName/tblName<br />% myisamchk /usr/local/mysql/var/dbName/tblName.MYI<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">上面的两个命令都可以执行对指定表的检查。要检查数据库中所有的表，可以使用通配符：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% myisamchk /usr/local/mysql/var/dbName/*.MYI</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">要检查所有数据库中的所有表，可以使用两个通配符：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% myisamchk /usr/local/mysql/var/*/*.MYI</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">如果不带任何选项，myisamchk将对表文件执行普通的检查。如果你对一个表有怀疑，但是普通的检查不能发现任何错误，你可以执行更彻底的检查(但是也更慢！)，这需要使用--extend-check选项：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% myisamchk --extend-check /path/to/tblName</td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">对错误的检查是没有破坏性的，这意味着你不必担心执行对你的数据文件的检查会使已经存在的问题变得更糟。另一方面，修复选项，虽然通常也是安全的，但是它对你的数据文件的更改是无法撤消的。因为这个原因，我们强烈推荐你试图修复一个被破坏的表文件时首先做个备份，并确保在制作这个备份之前你的MySQL服务是关闭的。</p><p style="TEXT-INDENT: 2em">当你试图修复一个被破坏的表的问题时，有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立，删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的。</p><p style="TEXT-INDENT: 2em">这三种修复方法如下所示：</p><p style="TEXT-INDENT: 2em"><table cellspacing="0" bordercolordark="#ffffff" cellpadding="0" width="540" align="center" bordercolorlight="#000000" border="1"><tbody><tr><td bgcolor="#e6e6e6">% myisamchk --recover --quick /path/to/tblName<br />% myisamchk --recover /path/to/tblName<br />% myisamchk --safe-recover /path/to/tblName<br /></td></tr></tbody></table></p><p style="TEXT-INDENT: 2em">第一种是最快的，用来修复最普通的问题；而最后一种是最慢的，用来修复一些其它方法所不能修复的问题。</p><p style="TEXT-INDENT: 2em"><b>检查和修复MySQL数据文件</b></p><p style="TEXT-INDENT: 2em">如果上面的方法无法修复一个被损坏的表，在你放弃之前，你还可以试试下面这两个技巧：</p><p style="TEXT-INDENT: 2em">如果你怀疑表的索引文件(*.MYI)发生了不可修复的错误，甚至是丢失了这个文件，你可以使用数据文件(*.MYD)和数据格式文件(*.frm)重新生成它。首先制作一个数据文件(tblName.MYD)的拷贝。重启你的MySQL服务并连接到这个服务上，使用下面的命令删除表的内容：</p><p style="TEXT-INDENT: 2em">mysql&amp;gt; DELETE FROM tblName;</p><p style="TEXT-INDENT: 2em">在删除表的内容的同时，会建立一个新的索引文件。退出登录并重新关闭服务，然后用你刚才保存的数据文件(tblName.MYD)覆盖新的(空)数据文件。最后，使用myisamchk执行标准的修复(上面的第二种方法)，根据表的数据的内容和表的格式文件重新生成索引数据。</p><p style="TEXT-INDENT: 2em">如果你的表的格式文件(tblName.frm)丢失了或者是发生了不可修复的错误，但是你清楚如何使用相应的CREATE TABLE语句来重新生成这张表，你可以重新生成一个新的.frm文件并和你的数据文件和索引文件(如果索引文件有问题，使用上面的方法重建一个新的)一起使用。首先制作一个数据和索引文件的拷贝，然后删除原来的文件(删除数据目录下有关这个表的所有记录)。</p><p style="TEXT-INDENT: 2em">启动MySQL服务并使用当初的CREATE TABLE文件建立一个新的表。新的.frm文件应该可以正常工作了，但是最好你还是执行一下标准的修复(上面的第二种方法)。</p><p style="TEXT-INDENT: 2em"><b>结语</b></p><p style="TEXT-INDENT: 2em">OK，的确这一章没有多少我们通常所习惯的可以具体执行某项实际工作的代码。但是所有的这些工作--备份和恢复数据库，管理MySQL的访问控制系统，数据表的检查和修复--都将有助于我们建立一个经得住时间考验的MySQL数据库服务器。</p><p style="TEXT-INDENT: 2em">在本教程的倒数第二章——第九章中，我们会学习一些更复杂的SQL技术以使得我们的关系型数据库服务器可以完成一些你之前也许从未想到过的工作。</p>]]> 
</content> 
</entry>
 
<entry> 
<title><![CDATA[致所有未婚的朋友]]></title> 
<link rel="alternate" type="text/html" href="http://harrymao.blogchina.com/3455658.html" />  
<issued>2005-11-08T13:15:51Z</issued> 
<created>2005-11-08T13:15:51Z</created> 
<modified>2005-11-08T13:15:51Z</modified>
<id>tag:harrymao.blogchina.com,2005://3455658</id>
<author> 
<name>harrymao</name> 
<url>http://harrymao.blogchina.com/index.html</url> 
<email>watermelon@163.com</email> 
</author> 
<dc:subject>生活</dc:subject> 
<content type="text/html" mode="escaped" xml:lang="cn" xml:base="http://harrymao.blogchina.com/"> 
<![CDATA[致所有未婚的朋友:<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; 班中央，班务院：<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; 我们正处于结婚时代的初级阶段，经过二十几年的努力，虽然取得了结识众多异性的巨大成就，但是人口众多，人均资源相对短缺，局部个人发展很不平衡。<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; 现阶段的主要矛盾，是日益增长的爱我的人我不爱，我爱的人不爱我之间的矛盾。情敌竞争已经不是初级阶段的主要矛盾，但是它在一定范围内还将长期存在，并且在一定条件下还可能激化。<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; 我们要允许一部分人先结婚，先婚带后婚，最终实现共同发昏！自由恋爱制度已经在中国大地上 扎根并初步显示它的优越性，但其不成熟，不完善的环节，还必须通过深化思想改革来逐步解决。<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; 恋爱是结婚的初级阶段，而我们又正处于恋爱的初级阶段，就是不发达阶段，也是不可逾越的历史阶段，只希望这个阶段不要同社会主义初级阶段一样，要100年不变!!! 全班要统一思想，统一认识，把下一步的工作重心转移到家庭建设上。要把&amp;quot;快找，快结 ，快生&amp;quot;作为我们落实&amp;quot;三个代表&amp;quot;的指导方针。下一个四年对我们来说是关键的四年，好男好女已越来越少，若我们不抓住年轻的尾巴,错过末班车，以后的美好生活将无从谈起。<br />当然,已经胜利的同志们是光辉的榜样！全班同志必须要认真学习<br />&amp;nbsp;&amp;nbsp;&amp;nbsp; 请家宝、庆红阅处。&amp;nbsp; <br />]]> 
</content> 
</entry>
 

</feed>