<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[SelBoo's Blog 色萝卜]]></title> 
<link>http://selboo.com.cn/index.php</link> 
<description><![CDATA[简单记录,方便自己,服务大众...]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[SelBoo's Blog 色萝卜]]></copyright>
<item>
<link>http://selboo.com.cn/post/794/</link>
<title><![CDATA[揭秘 Google 翻译是如何工作的]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Fri, 13 Aug 2010 03:11:46 +0000</pubDate> 
<guid>http://selboo.com.cn/post/794/</guid> 
<description>
<![CDATA[ 
	<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Google上传了一段视频解释了Google Translate是如何运作的，在这里你还可以看到Google Translate在过去4年里都做了哪些改进。<br/><br/>http://translate.google.com/about/tour.html<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;视频里说到，Google Translate是一个免费工具，帮助你瞬间翻译语句、文档甚至是整个网页，不够它是如何工作的呢？难道Google雇了一屋子的翻译大牛？当然不是， 所有翻译都是计算机完成的，这些计算机使用一种称作“统计机器翻译”的程序来按照大量文字排序生成翻译。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;退一步说，如果你想教某人一个新语言肯定得从词汇表和语法开始，告诉他们如何组成整句。教电脑翻译也是这个顺序，先告诉他们词汇表和一些语法规矩。 但是语言是复杂的，有很多时候都是没有规则而言的，很难捕捉到并一一说清楚。对于一个计算机程序来说，翻译质量一般都很差，而Google Translate则从另外<br/>............<br/><br/>Tags - <a href="http://selboo.com.cn/tags/google/" rel="tag">google</a> , <a href="http://selboo.com.cn/tags/%25E7%25BF%25BB%25E8%25AF%2591/" rel="tag">翻译</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/733/</link>
<title><![CDATA[Windows 7 QQ2010 Beta 3 无法运行]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Fri, 21 May 2010 16:04:51 +0000</pubDate> 
<guid>http://selboo.com.cn/post/733/</guid> 
<description>
<![CDATA[ 
	Windows 7 下 QQ2010 Beta 3 无法正常启动显示应用程序无法正常启动（0cx0150002）如下图<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=220" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=220" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>............<br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E9%2594%2599%25E8%25AF%25AF/" rel="tag">错误</a> , <a href="http://selboo.com.cn/tags/qq/" rel="tag">qq</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/688/</link>
<title><![CDATA[Route-Views看看全球路由表]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Tue, 02 Feb 2010 03:38:55 +0000</pubDate> 
<guid>http://selboo.com.cn/post/688/</guid> 
<description>
<![CDATA[ 
	IPv4的地址数目高达40亿个，去除了部分私有的和保留的IP地址后，互联网上可能出现的公有地址数量依然相当可观（虽然这些地址仍然不够用），在经过汇总和合理的分配之后，互联网上的路由条目仍然有接近30万条！运行在互联网上的路由器为了可以选择最佳的路径达到全球目的地，有必要接收大部分甚至所有的路由条目，想必很多人会对这个包含全球路由的BGP路由表深感兴趣吧？Let‘s check it out！ <br/>1.打开SecureCRT或者Putty甚至系统自带的telnet程序（不建议用系统自带的）<br/><br/>2.telnet 这个地址：route-server.ip.att.net<br/><br/>3.接着就会收到一些欢迎信息，和提示要求输入用户名，输入rviews<br/><br/>4.这里已经进入了路由器的用户模式，我们可以执行一些很基础的产看命令，如：show ip route&nbsp;&nbsp;show version 等。要查看路由表，只需输入show ip route，密密麻麻的路由前缀就会出现，用空格键翻页，回车键逐行显示，或者任意字符中断显示。命令我不多写，大家打“？”号查一下吧。<br/><br/>上面的这个路由器是属于美国AT&T的，是一个cisco的7206VXR路由器，配备NPE-G1引擎，有3个千兆口，它与AT&T的IP服务骨干网里的路由器建立了eBGP关系。它的BGP路由表上面有超过30万条前缀！550多万条路径！单单存储这些前缀和路径就用去了300多兆内存，这还不包括前缀中的一些路径属性！整个BGP占用了差不多400M的内存。<br/><br/>这里还有一个可供查看的：route-views3.routeviews.org/ 也是Cisco 7200 不过引擎更强，是NPE-G2的！<br/><br/><a href="http://www.routeviews.org/" target="_blank">Route-views</a>是一个计划，它的目的是方便网络工程师查看和获得实时的全球路由系统信息，你所访问的可能并不是真正的路由器，可能是透过route-views来间接取得的。<br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E8%25B7%25AF%25E7%2594%25B1/" rel="tag">路由</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/687/</link>
<title><![CDATA[NTFS 下的硬链接(hard link)与软链接(symbolic link)]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Tue, 02 Feb 2010 03:18:43 +0000</pubDate> 
<guid>http://selboo.com.cn/post/687/</guid> 
<description>
<![CDATA[ 
	在 Linux 使用的 ext2 等文件系统里,都有 hard link 与 symbolic link 的功能,这个功能简单的说就是让我们可以用多个路径去访问同一个文件或者目录.比如说让 /vmlinuz 和 /boot/vmlinuz-2.6.7-1-38 表示的是同一个文件.但 hard link 和 symbolic link 还是有区别的(废话).<br/><br/>Hard link 表示,它和原文件名指向的是存储设备上同一个文件内容.就好像这个文件内容有多个文件名一样,每个文件名有相等地位.删除其中任何一个之后,事实上文件内容并不会被删除掉,仍然可以用其他的名称来访问这个文件.只有当最后一个指向这个文件内容的文件名被删除掉之后,文件内容才被删除.也就是说,一个文件的 hard link 跟此文件本来的名称并没有任何本质上的区别.需要注意的是,因为每个分区(partition)上都可能有相同的存储位置地址,所以 hard link 必须跟被 link 的文件在同一个分区上.另外,目录不支持 hard link. Symbolic link 也称 soft link,它类似于 Windows 里的快捷方式 .lnk 文件.它本身是一个单独的文件,而这个文件的内容是它所指向的文件的路径.一般的程序存取 symbolic link 时存取的并不是它本身的内容,而是它所指向的文件的内容.当某个文件被删除掉后,它的 symbolic link 就无法存取到这个文件了,因为文件本身已经被删除了.也就是说,一个文件的 symbolic link 跟此文件的文件名或者内容都是完全不同的两个东西.Symbolic link 可以链接任何本地可以访问到的文件或者目录路径.<br/><br/>以上这些是我对 hard link 和 symbolic link 的理解,我试图用跟文件系统无关和尽量通俗易懂的语言来解释这两个概念.但如果你是一个软件开发者或者系统管理员或者仅仅是想知道更详细的东西,强烈建议你去看看这个帖子.<br/><br/>OK,概念解释清楚了.那么,NTFS 3.0 (Windows 2000 使用的 NTFS 的版本)事实上是支持 hard link 和 symbolic link 的,虽然 Windows 里没有比较容易使用的相关工具,而且 Explorer 对待 symbolic link 也有很奇怪的行为.<br/><br/>在 Windows 2000 及以上版本里可以使用 fsutil hardlink create 这个复杂的命令来创建一个 hard link,用法倒是很简单:<br/><br/>fsutil hardlink create <新文件名> <现有文件名><br/>也可以使用 GNU utilities for Win32 中的 ln 来创建 hard link.这是一些 GNU 工具的 Win32 移植版本,非常好用.另外 Cygwin 里的 ln 不但可以创建 hard link 也可以创建 symbolic link (在 Windows 里就是快捷方式 .lnk 文件).<br/><br/>当然,如果你想在自己的程序里创建 hard link,那也是很容易的,只需要一个很简单的 API 函数:<br/><br/>BOOL CreateHardLink(<br/>&nbsp;&nbsp;LPCTSTR lpFileName,<br/>&nbsp;&nbsp;LPCTSTR lpExistingFileName,<br/>&nbsp;&nbsp;LPSECURITY_ATTRIBUTES lpSecurityAttributes<br/>);<br/><br/>前两个参数的意思就不用解释了,最后一个参数的用途暂时保留,必须为 NULL.<br/><br/>对于 symbolic link,NTFS 只支持对目录的 symbolic link,微软把它称作 junction.但是对于文件的 symbolic link,微软也有提供解决方案,那就是快捷方式(Shortcut,.lnk 文件).不过 symbolic link 和快捷方式不是一个层次上的东西,前者是底层文件系统的功能,后者是应用层的功能.<br/><br/>在“管理工具”中的“计算机管理”里的“磁盘管理”里我们可以将一个卷装载到一个 NTFS 卷上的某个空目录里,这实际上就是为被装载卷的根目录建立一个以该空目录名为名的 symbolic link.也可以用命令行工具 MOUNTVOL 来完成这项工作.<br/><br/>遗憾的是 Windows 并没有提供对 NTFS 的 symbolic link 完整支持的工具.“计算机管理”或者 MOUNTVOL 只能对某个卷的根目录创建 symbolic link,而不是对任意目录.幸运的是我们可以使用 Sysinternals 提供的带有源代码的免费命令行工具 junction.exe 来全功能的完成对 NTFS symbolic link 的管理.当然,微软也还不至于太莫名其妙,它在 Windwos 2000 Resource Kit 里提供了一个命令行工具 linkd.exe 来完成这件事.不过它的查看 symbolic link 信息的功能不如 junction,因为不支持通配符和子目录扫描.<br/><br/>需要注意的是,Explorer 对待 symbolic link 有一个很奇怪的行为.那就是,在 Explorer 里一个 symbolic link 跟被它 link 的目录没有区别,删除这个 symbolic link 将会删除被 link 的目录下的所有文件！而著名的强大的方便的扩展性强的(原谅我在这里用了这么多修饰词,我确实太喜欢 TC 了.)文件管理工具 Total Commander 则没有这个问题.<br/><br/>文中的某些基本概念和知识来源于以下两个页面:<br/>http://answers.google.com/answers/threadview?id=341355<br/>http://phorum.study-area.org/viewtopic.php?t=12235<br/><br/>感谢提供这两个页面内容的各位.<br/><br/>Tags - <a href="http://selboo.com.cn/tags/ntfs/" rel="tag">ntfs</a> , <a href="http://selboo.com.cn/tags/%25E9%2593%25BE%25E6%258E%25A5/" rel="tag">链接</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/685/</link>
<title><![CDATA[HTTP请求模型和头信息]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Tue, 26 Jan 2010 16:12:36 +0000</pubDate> 
<guid>http://selboo.com.cn/post/685/</guid> 
<description>
<![CDATA[ 
	参考: http://blog.csdn.net/baggio785/archive/2006/04/13/661410.aspx<br/>模型: http://blog.csdn.net/baggio785/archive/2006/04/13/661412.aspx<br/><br/><br/>HTTP请求模型<br/><br/>一、连接至Web服务器<br/>一个客户端应用（如Web浏览器）打开到Web服务器的HTTP端口的一个套接字（缺省为80）。<br/><br/>例如：http://www.myweb.com:8080/index.html<br/>在Java中，这将等同于代码：<br/>Soceet socket=new Socket(“www.myweb.com”,8080);<br/>InputStream in=socket.getInputStream();<br/>OutputStream out=socket.getOutputStream();<br/><br/>二、发送HTTP请求<br/>通过连接，客户端写一个ASCII文本请求行，后跟0或多个HTTP头标，一个空行和实现请求的任意数据。<br/>一个请求由四个部分组成：请求行、请求头标、空行和请求数据<br/>1.请求行：请求行由三个标记组成：请求方法、请求URI和HTTP版本，它们用空格分隔。<br/>例如：GET /index.html HTTP/1.1<br/>HTTP规范定义了8种可能的请求方法：<br/>GET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;检索URI中标识资源的一个简单请求<br/>HEAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;与GET方法相同，服务器只返回状态行和头标，并不返回请求文档<br/>POST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;服务器接受被写入客户端输出流中的数据的请求<br/>PUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;服务器保存请求数据作为指定URI新内容的请求<br/>DELETE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;服务器删除URI中命名的资源的请求<br/>OPTIONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于服务器支持的请求方法信息的请求<br/>TRACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web服务器反馈Http请求和其头标的请求<br/>CONNECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已文档化但当前未实现的一个方法，预留做隧道处理<br/>2.请求头标：由关键字/值对组成，每行一对，关键字和值用冒号（:）分隔。<br/>请求头标通知服务器有关于客户端的功能和标识，典型的请求头标有：<br/>User-Agent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;客户端厂家和版本<br/>Accept&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;客户端可识别的内容类型列表<br/>Content-Length&nbsp;&nbsp;&nbsp;&nbsp;附加到请求的数据字节数<br/>3.空行：最后一个请求头标之后是一个空行，发送回车符和退行，通知服务器以下不再有头标。<br/>4.请求数据：使用POST传送数据，最常使用的是Content-Type和Content-Length头标。<br/><br/>三、服务端接受请求并返回HTTP响应<br/>Web服务器解析请求，定位指定资源。服务器将资源副本写至套接字，在此处由客户端读取。<br/>一个响应由四个部分组成；状态行、响应头标、空行、响应数据<br/>1.状态行：状态行由三个标记组成：HTTP版本、响应代码和响应描述。<br/>HTTP版本：向客户端指明其可理解的最高版本。<br/>响应代码：3位的数字代码，指出请求的成功或失败，如果失败则指出原因。<br/>响应描述：为响应代码的可读性解释。<br/>例如：HTTP/1.1 200 OK<br/>HTTP响应码：<br/>1xx：信息，请求收到，继续处理<br/>2xx：成功，行为被成功地接受、理解和采纳<br/>3xx：重定向，为了完成请求，必须进一步执行的动作<br/>4xx：客户端错误：<br/>2.响应头标：像请求头标一样，它们指出服务器的功能，标识出响应数据的细节。<br/>3.空行：最后一个响应头标之后是一个空行，发送回车符和退行，表明服务器以下不再有头标。<br/>4.响应数据：HTML文档和图像等，也就是HTML本身。<br/><br/>四、服务器关闭连接，浏览器解析响应<br/>1.浏览器首先解析状态行，查看表明请求是否成功的状态代码。<br/>2.然后解析每一个响应头标，头标告知以下为若干字节的HTML。<br/>3.读取响应数据HTML，根据HTML的语法和语义对其进行格式化，并在浏览器窗口中显示它。<br/>4.一个HTML文档可能包含其它需要被载入的资源引用，浏览器识别这些引用，对其它的资源再进行额外的请求，此过程循环多次。<br/><br/>五、无状态连接<br/>HTTP模型是无状态的，表明在处理一个请求时，Web服务器并不记住来自同一客户端的请求。<br/><br/>六、实例<br/>1.浏览器发出请求<br/>GET /index.html HTTP/1.1<br/>服务器返回响应<br/>HTTP /1.1 200 OK<br/>Date: Apr 11 2006 15:32:08 GMT<br/>Server: Apache/2.0.46(win32)<br/>Content-Length: 119<br/>Content-Type: text/html<br/><br/><HTML><br/><HEAD><br/><LINK REL=”stylesheet” HREF=”index.css”><br/></HEAD><br/><BODY><br/><IMG SRC=”image/logo.png”><br/></BODY><br/></HTML><br/><br/>2.浏览器发出请求<br/>GET /index.css HTTP/1.1<br/>服务器返回响应<br/>HTTP /1.1 200 OK<br/>Date: Apr 11 2006 15:32:08 GMT<br/>Server: Apache/2.0.46(win32)<br/>Connection: Keep-alive, close<br/>Content-Length: 70<br/>Content-Type: text/plane<br/><br/>h3&#123;<br/>font-size:20px;<br/>font-weight:bold;<br/>color:#005A9C;<br/>&#125;<br/><br/>3.浏览器发出请求<br/>GET image/logo.png HTTP/1.1<br/>服务器返回响应<br/>HTTP /1.1 200 OK<br/>Date: Apr 11 2006 15:32:08 GMT<br/>Server: Apache/2.0.46(win32)<br/>Connection: Keep-alive, close<br/>Content-Length: 1280<br/>Content-Type: text/plane<br/><br/>&#123;Binary image data follows&#125;<br/><br/>（附录）<br/>1.HTTP规范：Internet工程制定组织（IETF）发布的RFC指定Internet标准，这些RFC被Internet研究发展机构广泛接受。因为它们是标准文档，故一般用正规语言编写，如立法文标一样。<br/>2.RFC：RFC一旦被提出，就被编号且不会再改变，当一个标准被修改时，则给出一个新的RFC。作为标准，RFC在Internet上被广泛采用。<br/>3.HTTP的几个重要RFC：<br/>RFC1945&nbsp;&nbsp;&nbsp;&nbsp;HTTP 1.0 描述<br/>RFC2068&nbsp;&nbsp;&nbsp;&nbsp;HTTP 1.1 初步描述<br/>RFC2616&nbsp;&nbsp;&nbsp;&nbsp;HTTP 1.1 标准<br/>4.资源标识符URI（Uniform Resource Identifter，URI） <br/><br/><br/>HTTP参考<br/><br/>一、HTTP码应码<br/>响应码由三位十进制数字组成，它们出现在由HTTP服务器发送的响应的第一行。<br/><br/>响应码分五种类型，由它们的第一位数字表示：<br/>1.1xx：信息，请求收到，继续处理<br/>2.2xx：成功，行为被成功地接受、理解和采纳<br/>3.3xx：重定向，为了完成请求，必须进一步执行的动作<br/>4.4xx：客户端错误，请求包含语法错误或者请求无法实现<br/>5.5xx：服务器错误，服务器不能实现一种明显无效的请求<br/><br/>下表显示每个响应码及其含义：<br/>100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;继续<br/>101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分组交换协<br/>200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK<br/>201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;被创建<br/>202&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;被采纳<br/>203&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;非授权信息<br/>204&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无内容<br/>205&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;重置内容<br/>206&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;部分内容<br/>300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多选项<br/>301&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;永久地传送<br/>302&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;找到<br/>303&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;参见其他<br/>304&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未改动<br/>305&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用代理<br/>307&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂时重定向<br/>400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;错误请求<br/>401&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未授权<br/>402&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求付费<br/>403&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;禁止<br/>404&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未找到<br/>405&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不允许的方法<br/>406&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不被采纳<br/>407&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求代理授权<br/>408&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请求超时<br/>409&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;冲突<br/>410&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;过期的<br/>411&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求的长度<br/>412&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前提不成立<br/>413&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请求实例太大<br/>414&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请求URI太大<br/>415&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不支持的媒体类型<br/>416&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无法满足的请求范围<br/>417&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;失败的预期<br/>500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;内部服务器错误<br/>501&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未被使用<br/>502&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;网关错误<br/>503&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不可用的服务<br/>504&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;网关超时<br/>505&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTTP版本未被支持<br/><br/>二、HTTP头标<br/>头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接。<br/><br/>四种不同类型的头标：<br/>1.通用头标：即可用于请求，也可用于响应，是作为一个整体而不是特定资源与事务相关联。<br/>2.请求头标：允许客户端传递关于自身的信息和希望的响应形式。<br/>3.响应头标：服务器和于传递自身信息的响应。<br/>4.实体头标：定义被传送资源的信息。即可用于请求，也可用于响应。<br/><br/>头标格式：<name>:<value><CRLF><br/><br/>下表描述在HTTP/1.1中用到的头标<br/>Accept 定义客户端可以处理的媒体类型，按优先级排序；<br/>在一个以逗号为分隔的列表中，可以定义多种类型和使用通配符。例如：Accept: image/jpeg,image/png,*/*<br/>Accept-Charset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义客户端可以处理的字符集，按优先级排序；<br/>在一个以逗号为分隔的列表中，可以定义多种类型和使用通配符。例如：Accept-Charset: iso-8859-1,*,utf-8<br/>Accept-Encoding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义客户端可以理解的编码机制。例如：Accept-Encoding:gzip,compress<br/>Accept-Language&nbsp;&nbsp;&nbsp;&nbsp;定义客户端乐于接受的自然语言列表。例如：Accept-Language: en,de<br/>Accept-Ranges&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个响应头标，它允许服务器指明：将在给定的偏移和长度处，为资源组成部分的接受请求。<br/>该头标的值被理解为请求范围的度量单位。例如Accept-Ranges: bytes或Accept-Ranges: none<br/>Age 允许服务器规定自服务器生成该响应以来所经过的时间长度，以秒为单位。<br/>该头标主要用于缓存响应。例如：Age: 30<br/>Allow 一个响应头标，它定义一个由位于请求URI中的次源所支持的HTTP方法列表。例如：Allow: GET,PUT<br/>aUTHORIZATION 一个响应头标，用于定义访问一种资源所必需的授权（域和被编码的用户ID与口令）。<br/>例如：Authorization: Basic YXV0aG9yOnBoaWw=<br/>Cache-Control 一个用于定义缓存指令的通用头标。例如：Cache-Control: max-age=30<br/>Connection 一个用于表明是否保存socket连接为开放的通用头标。例如：Connection: close或Connection: keep-alive<br/>Content-Base 一种定义基本URI的实体头标，为了在实体范围内解析相对URLs。<br/>如果没有定义Content-Base头标解析相对URLs，使用Content-Location URI（存在且绝对）或使用URI请求。<br/>例如：Content-Base: Http://www.myweb.com<br/>Content-Encoding 一种介质类型修饰符，标明一个实体是如何编码的。例如：Content-Encoding: zip<br/>Content-Language 用于指定在输入流中数据的自然语言类型。例如：Content-Language: en<br/>Content-Length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定包含于请求或响应中数据的字节长度。例如：Content-Length:382<br/>Content-Location&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定包含于请求或响应中的资源定位（URI）。<br/>如果是一绝。对URL它也作为被解析实体的相对URL的出发点。<br/>例如：Content-Location: http://www.myweb.com/news<br/>Content-MD5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;实体的一种MD5摘要，用作校验和。<br/>发送方和接受方都计算MD5摘要，接受方将其计算的值与此头标中传递的值进行比较。<br/>例如：Content-MD5: <base64 of 128 MD5 digest><br/>Content-Range&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;随部分实体一同发送；标明被插入字节的低位与高位字节偏移，也标明此实体的总长度。<br/>例如：Content-Range: 1001-2000/5000<br/>Contern-Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;标明发送或者接收的实体的MIME类型。例如：Content-Type: text/html<br/>Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送HTTP消息的日期。例如：Date: Mon,10PR 18:42:51 GMT<br/>ETag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一种实体头标，它向被发送的资源分派一个唯一的标识符。<br/>对于可以使用多种URL请求的资源，ETag可以用于确定实际被发送的资源是否为同一资源。<br/>例如：ETag: ”208f-419e-30f8dc99″<br/>Expires&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定实体的有效期。例如：Expires: Mon,05 Dec 2008 12:00:00 GMT<br/>Form&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一种请求头标，给定控制用户代理的人工用户的电子邮件地址。例如：From: webmaster@myweb.com<br/>Host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;被请求资源的主机名。对于使用HTTP/1.1的请求而言，此域是强制性的。例如：Host: www.myweb.com<br/>If-Modified-Since&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果包含了GET请求，导致该请求条件性地依赖于资源上次修改日期。<br/>如果出现了此头标，并且自指定日期以来，此资源已被修改，应该反回一个304响应代码。<br/>例如：If-Modified-Since: Mon,10PR 18:42:51 GMT<br/>If-Match&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果包含于一个请求，指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。<br/>例如：If-Match: ”208f-419e-308dc99″<br/>If-None-Match&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果包含一个请求，指定一个或者多个实体标记。资源的ETag不与列表中的任何一个条件匹配，操作才执行。<br/>例如：If-None-Match: ”208f-419e-308dc99″<br/>If-Range&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定资源的一个实体标记，客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。<br/>如果此实体自上次被客户端检索以来，还不曾修改过，那么服务器只发送指定的范围，否则它将发送整个资源。<br/>例如：Range: byte=0-499<CRLF>If-Range:”208f-419e-30f8dc99″<br/>If-Unmodified-Since&nbsp;&nbsp;&nbsp;&nbsp;只有自指定的日期以来，被请求的实体还不曾被修改过，才会返回此实体。<br/>例如：If-Unmodified-Since:Mon,10PR 18:42:51 GMT<br/>Last-Modified&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定被请求资源上次被修改的日期和时间。例如：Last-Modified: Mon,10PR 18:42:51 GMT<br/>Location&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于一个已经移动的资源，用于重定向请求者至另一个位置。<br/>与状态编码302（暂时移动）或者301（永久性移动）配合使用。<br/>例如：Location: http://www2.myweb.com/index.jsp<br/>Max-Forwards&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个用于TRACE方法的请求头标，以指定代理或网关的最大数目，该请求通过网关才得以路由。<br/>在通过请求传递之前，代理或网关应该减少此数目。例如：Max-Forwards: 3<br/>Pragma&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个通用头标，它发送实现相关的信息。例如：Pragma: no-cache<br/>Proxy-Authenticate&nbsp;&nbsp;&nbsp;&nbsp;类似于WWW-Authenticate，便是有意请求只来自请求链（代理）的下一个服务器的认证。<br/>例如：Proxy-Authenticate: Basic realm-admin<br/>Proxy-Proxy-Authorization&nbsp;&nbsp;&nbsp;&nbsp;类似于授权，但并非有意传递任何比在即时服务器链中更进一步的内容。<br/>例如：Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=<br/>Public&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;列表显示服务器所支持的方法集。例如：Public: OPTIONS,MGET,MHEAD,GET,HEAD<br/>Range&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定一种度量单位和一个部分被请求资源的偏移范围。例如：Range: bytes=206-5513<br/>Refener&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一种请求头标域，标明产生请求的初始资源。对于HTML表单，它包含此表单的Web页面的地址。<br/>例如：Refener: http://www.myweb.com/news/search.html<br/>Retry-After&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一种响应头标域，由服务器与状态编码503（无法提供服务）配合发送，以标明再次请求之前应该等待多长时间。<br/>此时间即可以是一种日期，也可以是一种秒单位。例如：Retry-After: 18<br/>Server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一种标明Web服务器软件及其版本号的头标。例如：Server: Apache/2.0.46(Win32)<br/>Transfer-Encoding&nbsp;&nbsp;&nbsp;&nbsp;一种通用头标，标明对应被接受方反向的消息体实施变换的类型。例如：Transfer-Encoding: chunked<br/>Upgrade&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;允许服务器指定一种新的协议或者新的协议版本，与响应编码101（切换协议）配合使用。<br/>例如：Upgrade: HTTP/2.0<br/>User-Agent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定义用于产生请求的软件类型（典型的如Web浏览器）。<br/>例如：User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)<br/>Vary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个响应头标，用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体。例如：Vary: *<br/>Via&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个包含所有中间主机和协议的通用头标，用于满足请求。例如：Via: 1.0 fred.com, 1.1 wilma.com<br/>Warning&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用于提供关于响应状态补充信息的响应头标。例如：Warning: 99 www.myweb.com Piano needs tuning<br/>www-Authenticate&nbsp;&nbsp;&nbsp;&nbsp;一个提示用户代理提供用户名和口令的响应头标，与状态编码401（未授权）配合使用。响应一个授权头标。<br/>例如：www-Authenticate: Basic realm=zxm.mgmt<br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E5%258D%258F%25E8%25AE%25AE/" rel="tag">协议</a> , <a href="http://selboo.com.cn/tags/http/" rel="tag">http</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/671/</link>
<title><![CDATA[Windwos 下查看端口由那些程序开启]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 04 Jan 2010 04:23:15 +0000</pubDate> 
<guid>http://selboo.com.cn/post/671/</guid> 
<description>
<![CDATA[ 
	我要查看我的 TCP 80 是由那个程序监控<br/><br/>C:&#92;Documents and Settings&#92;Selboo><span style="color: #FF0000;">netstat -aon</span><br/><br/>Active Connections<br/><br/>&nbsp;&nbsp;Proto&nbsp;&nbsp;Local Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foreign Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2752<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:1110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1056<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:19780&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1056<br/><br/>看到 TCP 80 是由 进程PID “2752” <br/><br/>C:&#92;Documents and Settings&#92;Selboo><span style="color: #FF0000;">tasklist</span><br/><br/>图像名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID 会话名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 会话#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 内存使用<br/>========================= ====== ================ ======== ============<br/>System Idle Process&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28 K<br/>System&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;504 K<br/>smss.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1220&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;820 K<br/>csrss.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1268&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 15,536 K<br/>winlogon.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1292&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 30,800 K<br/>services.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1336&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4,484 K<br/>ThunderService.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2752&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 30,760 K<br/><br/>可以看到 PID “2752” 是由 进程 "ThunderService.exe" <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>很清楚吧，tor占用了你的端口<br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/tcp/" rel="tag">tcp</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/648/</link>
<title><![CDATA[24个最好免费下载电子书(Ebooks)的网站]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Fri, 11 Dec 2009 02:02:12 +0000</pubDate> 
<guid>http://selboo.com.cn/post/648/</guid> 
<description>
<![CDATA[ 
	1.<a href="http://www.freebookspot.com/" target="_blank">FreeBookSpot</a><br/>FreeBookSpot有4485本免费的E-BOOKS分成96个类别，多达71,97 GB。 您可以在类別搜寻找和下载免费的书，如:科学、设计、编码、小说和许多其他的书。您可以在类别搜寻和下载免费的书，如:科学、设计、编码、小说和许多其他的书。<br/><br/>2.<a href="http://4ebooks.org/" target="_blank">4eBooks</a><br/>4eBooks 有数量相当庞大的程式设计ebooks，下载的ebook都有简短的描述。您可以找到数以千计程式设计领域的ebooks，如:Net、Actionscript、Ajax、Apache..等等。<br/><br/>3.<a href="http://www.free-ebooks.net/" target="_blank">Free-eBooks</a><br/>Free-eBooks是一个以网络为收集来源的免费ebook下载网站，除了免费ebooks以外，您也下载免费杂志或上传您收集的ebook作为交流。<br/><br/>4.<a href="http://manybooks.net/" target="_blank">ManyBooks</a><br/>ManyBooks 提供PDA、iPod或者一般读者免费ebooks阅读与下载，这里有21,282 eBooks可利用，完全免费!<br/><br/>5.<a href="http://www.getfreeebooks.com/" target="_blank">GetFreeEBooks</a><br/>GetFreeEBooks 是一个免费ebook下载网站，所有网站内的ebooks都是有经版权许可免费可使用的。<br/><br/>6.<a href="http://freecomputerbooks.com/" target="_blank">FreeComputerBooks</a><br/>FreeComputerBooks 包括免费网络、编程、数学、技术、演讲笔记和教学的丰富资料库。分类按照标题，分成12个根目录和150个子目录。<br/><br/>7.<a href="http://www.freetechbooks.com/" target="_blank">FreeTechBooks</a><br/>FreeTechBooks 包括网络电脑科学，工程学和程序方面的书，课本还有演讲笔记，所有网站内的ebooks都是有经版权许可免费可使用的。<br/><br/>8.<a href="http://www.scribd.com/" target="_blank">Scribd</a><br/>Scribd是线上文件分享网站，支援格式有:Word、Excel、PowerPoint、PDF与其他一些常用的格式，您可以下载或是贴在你的blog。详细介绍。<br/><br/>9.<a href="http://www.globusz.com/" target="_blank">GlobuszGlobusz</a><br/>GlobuszGlobusz 是特別为发表ebooks设计的网站，专门研究免费eBook下载。文章与作者也以星等加以评价。<br/><br/>10.<a href="http://knowfree.net/" target="_blank">KnowFreeKnowFree</a><br/>KnowFreeKnowFree 免费交换ebooks、录影和其他材料，授权做为教育用途或是非商业用途。<br/><br/>11.<a href="http://www.onlinefreeebooks.net/" target="_blank">OnlineFreeEBooksOnlineFreeEBooks</a><br/>OnlineFreeEBooksOnlineFreeEBooks 提供9大类的ebooks：汽车Ebooks，商业Ebooks、设计Ebooks、套件Ebooks、硬件Ebooks、健康与医疗Ebooks、软件与技术Ebooks，体育与武术Ebooks。<br/><br/>12.<a href="http://www.memoware.com/" target="_blank">MemoWareMemoWare</a><br/>MemoWareMemoWare 有数以万计收藏(数据库、文学、地图、技术参考等等)特别的格式化的文件可以容易的传输到您的PalmOS、Pocket PC、Windows CE、EPOC、Symbian或其他PDA设备。<br/><br/>13.<a href="http://www.zillr.org/" target="_blank">BluePortal</a><br/><br/>14.<a href="http://www.onlinecomputerbooks.com/" target="_blank">OnlineComputerBooksOnlineComputerBooks</a> <br/>包含关于免费电脑书<br/><br/>15.<a href="http://www.snipfiles.com/" target="_blank">SnipFiles</a><br/><br/>16.<a href="http://www.bookyards.com/" target="_blank">BookYards</a><br/><br/>17.<a href="http://digital.library.upenn.edu/books/" target="_blank">The Online Books Page</a><br/>The Online Books Page 超过30,000本免费ebooks。<br/><br/>18.<a href="http://digital.library.upenn.edu/books/" target="_blank">AskSam Ebooks</a><br/>AskSam Ebooks 有免费的收藏，如:莎士比亚、法律与政府文件。<br/><br/>19.<a href="http://www.baen.com/library/" target="_blank">Baen Free Library</a><br/>Baen Free Library是下载科幻小说的在线图书馆。<br/><br/>20.<a href="http://www.ebooklobby.com/" target="_blank">eBookLobby</a><br/>包括商务、艺术、电脑及教育。<br/><br/>21.<a href="http://issuu.com/" target="_blank">Issuu</a><br/>Issuu是一个专业的在线PDF分享服务网站，或者也可以认为是一个很不错的在线PDF文档图书馆。详细介绍。<br/><br/>22.<a href="http://beta.yudu.com/" target="_blank">Yudu</a><br/>Yudu是一个在线PDF文档分享网网站，你可以发布自己的PDF文件，上面也有很丰富的PDF电子书资源。<br/><br/>23.<a href="http://www.calameo.com/" target="_blank">Calameo</a><br/>Calameo同样是一个PDF文档分享网站，上面也有丰富的PDF文件可供下载。<br/><br/>24.<a href="http://www.onsitecatalog.com/" target="_blank">Onsitecatalog</a><br/>Onsitecatalog也是一个在线PDF发布服务，上面同样有很多的免费的PDF文件资源。<br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E7%2594%25B5%25E5%25AD%2590%25E4%25B9%25A6/" rel="tag">电子书</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/601/</link>
<title><![CDATA[TIME_WAIT解决办法]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Wed, 26 Aug 2009 13:47:53 +0000</pubDate> 
<guid>http://selboo.com.cn/post/601/</guid> 
<description>
<![CDATA[ 
	netstat -an<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30443&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30444&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30445&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30446&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30447&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30448&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30449&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30450&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30451&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>192.168.12.13:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.12.12:30452&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT<br/>... ...<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket, 甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务. TIME_WAIT是TCP协议用以保证被重新分配的socket不会受到之前残留的延迟重发报文影响的机制,是必要的逻辑保证.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在HKEY_LOCAL_MACHINE&#92;SYSTEM&#92;CurrentControlSet&#92;Services&#92;Tcpip&#92;Parameters,添加名为TcpTimedWaitDelay的<br/>DWORD键,设置为60,以缩短TIME_WAIT的等待时间<br/><br/>vi /etc/sysctl.conf<br/><br/>编辑文件，加入以下内容：<br/>net.ipv4.tcp_syncookies = 1<br/>net.ipv4.tcp_tw_reuse = 1<br/>net.ipv4.tcp_tw_recycle = 1<br/>net.ipv4.tcp_fin_timeout = 30<br/> <br/>然后执行 /sbin/sysctl -p 让参数生效。<br/> <br/>net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时，启用cookies来处理，可防范少量SYN攻击，默认为0，表示关闭；<br/>net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接，默认为0，表示关闭；<br/>net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收，默认为0，表示关闭。<br/>net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间<br/> <br/>发现大量的TIME_WAIT 已不存在，mysql进程的占用率很快就降下来的，各网站访问正常！！<br/>以上只是暂时的解决方法，最后仔细巡查发现是前天新上线的一个系统，程序代码中没有使用mysql.colse()，才导致大量的mysql&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;<br/><br/>官方文章 <a href="http://technet.microsoft.com/en-us/library/cc938217.aspx" target="_blank">http://technet.microsoft.com/en-us/library/cc938217.aspx</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/588/</link>
<title><![CDATA[UDP首部]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 10 Aug 2009 11:25:40 +0000</pubDate> 
<guid>http://selboo.com.cn/post/588/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;UDP是一个简单的面向数据报的运输层协议：进程的每个输出操作都正好产生一个UDP数据报，并组装成一份待发送的IP数据报。这与面向流字符的协议不同，如TCP，应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系。<br/>&nbsp;&nbsp;&nbsp;&nbsp;UDP数据报封装成一份IP数据报的格式如图11 - 1所示。<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=191" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=191" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;RFC 768 [Postel 1980] 是UDP的正式规范。<br/>&nbsp;&nbsp;&nbsp;&nbsp;UDP不提供可靠性：它把应用程序传给IP层的数据发送出去，但是并不保证它们能到达目的地。由于缺乏可靠性，我们似乎觉得要避免使用UDP而使用一种可靠协议如TCP。我们在第1 7章讨论完TCP后将再回到这个话题，看看什么样的应用程序可以使用UDP。<br/>&nbsp;&nbsp;&nbsp;&nbsp;应用程序必须关心IP数据报的长度。如果它超过网络的M T U（2 . 8节），那么就要对IP数据报进行分片。如果需要，源端到目的端之间的每个网络都要进行分片，并不只是发送端主机连接第一个网络才这样做（我们在2 . 9节中已定义了路径M T U的概念）。在11 . 5节中，我们将讨论IP分片机制。<br/>&nbsp;&nbsp;&nbsp;&nbsp;UDP首部的各字段如图11 - 2所示。<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=192" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=192" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;端口号表示发送进程和接收进程。在图1 - 8中，我们画出了TCP和UDP用目的端口号来分用来自IP层的数据的过程。由于IP层已经把IP数据报分配给TCP或UDP（根据IP首部中协议字段值），因此TCP端口号由TCP来查看，而UDP端口号由UDP来查看。TCP端口号与UDP端口号是相互独立的。<br/>&nbsp;&nbsp;&nbsp;&nbsp;尽管相互独立，如果TCP和UDP同时提供某种知名服务，两个协议通常选择相同的端口号。这纯粹是为了使用方便，而不是协议本身的要求。<br/>&nbsp;&nbsp;&nbsp;&nbsp;UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为8字节（发送一份0字节的UDP数据报是O K）。这个UDP长度是有冗余的。IP数据报长度指的是数据报全长（图3 - 1），因此UDP数据报长度是全长减去IP首部的长度（该值在首部长度字段中指定，如图3 - 1所示）。<br/><br/> <br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/udp/" rel="tag">udp</a> , <a href="http://selboo.com.cn/tags/%25E5%258D%258F%25E8%25AE%25AE/" rel="tag">协议</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/587/</link>
<title><![CDATA[TCP首部]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 10 Aug 2009 11:23:40 +0000</pubDate> 
<guid>http://selboo.com.cn/post/587/</guid> 
<description>
<![CDATA[ 
	TCP数据被封装在一个IP数据报中如下图： <br/><br/><a href="http://selboo.com.cn/attachment.php?fid=189" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=189" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>显示TCP首部的数据格式。如果不计任选字段，它通常是20个字节。<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=190" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=190" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;每个TCP段都包含源端和目的端的端口号，用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;有时，一个IP地址和一个端口号也称为一个插口（socket）。这个术语出现在最早的TCP规范（RFC793）校 罄此 沧魑 硎静 死 娴谋喑探涌凇２蹇诙裕╯ocketpair）(包含客户IP地址、客户端口号、服务器IP地址和服务器端口号的四元组)可唯一确定互联网络中每个TCP连接的双方。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;序号用来标识从TCP发端向TCP收端发送的数据字节流，它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动，则TCP用序号对每个字节进行计数。序号是32bit的无符号数，序号到达232－1后又从0开始。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;当建立一个新的连接时，SYN标志变1。序号字段包含由这个主机选择的该连接的初始序号ISN（InitialSequenceNumber）。该主机要发送数据的第一个字节序号为这个ISN加1，因为SYN标志消耗了一个序号（将在下章详细介绍如何建立和终止连接，届时我们将看到FIN标志也要占用一个序号）。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;既然每个传输的字节都被计数，确认序号包含发送确认的一端所期望收到的下一个序号。因此，确认序号应当是上次已成功收到数据字节序号加1。只有ACK标志（下面介绍）为1时确认序号字段才有效。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;发送ACK无需任何代价，因为32bit的确认序号字段和ACK标志一样，总是TCP首部的一部分。因此，我们看到一旦一个连接建立起来，这个字段总是被设置，ACK标志也总是被设置为1。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;TCP为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。因此，连接的每一端必须保持每个方向上的传输数据序号。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;TCP可以表述为一个没有选择确认或否认的滑动窗口协议（滑动窗口协议用于数据传输将在20.3节介绍）。我们说TCP缺少选择确认是因为TCP首部中的确认序号表示发方已成功收到字节，但还不包含确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。例如，如果1～1024字节已经成功收到，下一报文段中包含序号从2049～3072的字节，收端并不能确认这个新的报文段。它所能做的就是发回一个确认序号为1025的ACK。它也无法对一个报文段进行否认。例如，如果收到包含1025～2048字节的报文段，但它的检验和错，TCP接收端所能做的就是发回一个确认序号为1025的ACK。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;首部长度给出首部中32bit字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占4bit，因此TCP最多有60字节的首部。然而，没有任选字段，正常的长度是20字节。在TCP首部中有6个标志比特。它们中的多个可同时被设置为1。我们在这儿简单介绍它们的用法。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;URG紧急指针（urgentpointer）有效<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;ACK确认序号有效。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;PSH接收方应该尽快将这个报文段交给应用层。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;RST重建连接。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;SYN同步序号用来发起一个连接。这个标志和下一个标志将在第18章介绍。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;FIN发端完成发送任务。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数，起始于确认序号字段指明的值，这个值是接收端正期望接收的字节。窗口大小是一个16bit字段，因而窗口大小最大为65535字节。在24.4节我们将看到新的窗口刻度选项，它允许这个值按比例变化以提供更大的窗口。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;检验和覆盖了整个的TCP报文段：TCP首部和TCP数据。这是一个强制性的字段，一定是由发端计算和存储，并由收端进行验证。TCP检验和的计算和UDP检验和的计算相似。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量，和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;最常见的可选字段是最长报文大小，又称为MSS(MaximumSegmentSize)。每个连接方通常都在通信的第一个报文段（为建立连接而设置SYN标志的那个段）中指明这个选项。它指明本端所能接收的最大长度的报文段。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;从上图中我们注意到TCP报文段中的数据部分是可选的。我们将在18章中看到在一个连接建立和一个连接终止时，双方交换的报文段仅有TCP首部。如果一方没有数据要发送，也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中，也会发送不带任何数据的报文段<br/> <br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/tcp/" rel="tag">tcp</a> , <a href="http://selboo.com.cn/tags/%25E5%258D%258F%25E8%25AE%25AE/" rel="tag">协议</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/586/</link>
<title><![CDATA[IP首部]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 10 Aug 2009 11:21:09 +0000</pubDate> 
<guid>http://selboo.com.cn/post/586/</guid> 
<description>
<![CDATA[ 
	IP数据报的格式如图3-1所示。普通的IP首部长为20个字节，除非含有选项字段。<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=187" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=187" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>4 个字节的32bit值以下面的次序传输：首先是0～7bit，其次8～15bit，然后16～23bit，最后是24~31bit。这种传输次序称作 bigendian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序，因此它又称作网络字节序。以其他形式存储二进制整数 的机器，如littleendian格式，则必须在传输数据之前把首部转换成网络字节序。<br/>目前的协议版本号是4，因此IP有时也称作IPv4。3.10节将对一种新版的IP协议进行讨论。<br/>首部长度指的是首部占32bit字的数目，包括任何选项。由于它是一个4比特字段，因此首部最长为60个字节。在第8章中，我们将看到这种限制使某些选项如路由记录选项在当今已没有什么用处。普通IP数据报（没有任何选择项）字段的值是5。<br/>服 务类型（TOS）字段包括一个3bit的优先权子字段（现在已被忽略），4bit的TOS子字段和1bit未用位但必须置0。4bit的TOS分别代表： 最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有4bit均为0，那么就意味着是一般服务。RFC1340 [ReynoldsandPostel1992]描述了所有的标准应用如何设置这些服务类型。RFC1349[Almquist1992]对该RFC进行 了修正，更为详细地描述了TOS的特性。<br/>列出了对不同应用建议的TOS值。在最后一列中给出的是十六进制值，因为这就是在后面将要看到的tcpdump命令输出。<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=188" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=188" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>Te l n e t 和R l o g i n这两个交互应用要求最小的传输时延，因为人们主要用它们来传输少量的交互数据。另一方面，F T P文件传输则要求有最大的吞吐量。最高可靠性被指明给网络管理（SN M P）和路由选择协议。用户网络新闻（Usenet news, NNTP）是唯一要求最小费用的应用。<br/>现在大多数的T C P / I P实现都不支持TO S 特性，但是自4.3BSD Reno以后的新版系统都对它进行了设置。另外，新的路由协议如O S P F和I S - I S都能根据这些字段的值进行路由决策。<br/>在2 . 1 0节中，我们提到S L I P一般提供基于服务类型的排队方法，允许对交互通信数据在处理大块数据之前进行处理。由于大多数的实现都不使用TO S 字段，因此这种排队机制由S L I P自己来判断和处理，驱动程序先查看协议字段（确定是否是一个T C P 段），然后检查T C P信源和信宿的端口号，以判断是否是一个交互服务。一个驱动程序的注释这样认为，这种“令人厌恶的处理方法”是必需的，因为大多数实现都不允许应用程序设 置TOS字段。<br/>总长度字段是指整个I P数据报的长度，以字节为单位。利用首部长度字段和总长度字段，就可以知道I P数据报中数据内容的起始位置和长度。由于该字段长1 6比特，所以I P数据报最长可达6 5 5 3 5字节（回忆图2 - 5，超级通道的M T U为6 5 5 3 5 。它的意思其实不是一个真正的M T U—它使用了最长的I P数据报）。当数据报被分片时，该字段的值也随着变化。<br/>尽管可以传送一个长达6 5 5 3 5字节的I P数据报，但是大多数的链路层都会对它进行分片。而且，主机也要求不能接收超过5 7 6字节的数据报。由于T C P把用户数据分成若干片，因此一般来说这个限制不会影响T C P。在后面的章节中将遇到大量使用U D P的应用（R I P，T F T P， B O O T P，D N S，以及S N M P），它们都限制用户数据报长度为5 1 2字节，小于5 7 6字节。但是，事实上现在大多数的实现（特别是那些支持网络文件系统N F S的实现）允许超过8 1 9 2字节的I P数据报。<br/>总长度字段是I P首部中必要的内容，因为一些数据链路（如以太网）需要填充一些数据以达到最小长度。尽管以太网的最小帧长为4 6字节，但是I P数据可能会更短。如果没有总长度字段，那么I P层就不知道4 6字节中有多少是I P数据报的内容。<br/>标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1<br/>RFC791 [Postel 1981a]认为标识字段应该由让IP发送数据报的上层来选择。假设有两个连续的I P数据报，其中一个是由T C P生成的，而另一个是由U D P生成的，那么它们可能具有相同的标识字段。尽管这也可以照常工作（由重组算法来处理），但是在大多数从伯克利派生出来的系统中，每发送一个I P数据报，I P层都要把一个内核变量的值加1，不管交给IP的数据来自哪一层。内核变量的初始值根据系统引导时的时间来设置。<br/>T T L（t i m e - t o - l i v e）生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。T T L的初始值由源主机设置（通常为3 2或6 4），一旦经过一个处理它的路由器，它的值就减去1。当该字段的值为0时，数据报就被丢弃，并发送I C M P报文通知源主机。第8 章我们讨论Tr a c e r o u t e 程序时将再回来讨论该字段。<br/>首部检验和字段是根据I P首部计算的检验和码。它不对首部后面的数据进行计算。I C M P、I G M P、U D P和T C P在它们各自的首部中均含有同时覆盖首部和数据检验和码。<br/>为了计算一份数据报的I P检验和，首先把检验和字段置为0。然后，对首部中每个16 bit 进行二进制反码求和（整个首部看成是由一串16 bit的字组成），结果存在检验和字段中。当收到一份I P数据报后，同样对首部中每个16 bit 进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和，因此，如果首部在传输过程中没有发生任何差错，那么接收方计算的结果应该 为全1。如果结果不是全1（即检验和错误），那么I P就丢弃收到的数据报。但是不生成差错报文，由上层去发现丢失的数据报并进行重传。<br/>I C M P、I G M P、U D P和T C P都采用相同的检验和算法，尽管T C P和U D P除了本身的首部和数据外，在I P首部中还包含不同的字段。在RFC1071[Braden, Borman and Patridge 1988]中有关于如何计算I n t e r n e t检验和的实现技术。由于路由器经常只修改T TL字段（减1），因此当路由器转发一份报文时可以增加它的检验和，而不需要对I P 整个首部进行重新计算。R F C 1141Mallory and Kullberg 1990]为此给出了一个很有效的方法。<br/>但是，标准的BSD实现在转发数据报时并不是采用这种增加的办法。每一份I P数据报都包含源I P地址和目的I P地址。我们在1 . 4节中说过，它们都是32 bit 的值。最后一个字段是任选项，是数据报中的一个可变长的可选信息。目前，这些任选项定义如下：<br/>安全和处理限制（用于军事领域） <br/><br/>记录路径（让每个路由器都记下它的I P地址，）<br/><br/>时间戳（让每个路由器都记下它的I P地址和时间，）<br/><br/>宽松的源站选路（为数据报指定一系列必须经过的I P地址，）<br/><br/>严 格的源站选路（与宽松的源站选路类似，但是要求只能经过指定的这些地址，不能经过其他的地址）。这些选项很少被使用，并非所有的主机和路由器都支持这些选 项。选项字段一直都是以32 bit作为界限，在必要的时候插入值为0的填充字节。这样就保证I P首部始终是32 bit 的整数倍（这是首部长度字段所要求的）。<br/><br/>Tags - <a href="http://selboo.com.cn/tags/ip/" rel="tag">ip</a> , <a href="http://selboo.com.cn/tags/%25E5%258D%258F%25E8%25AE%25AE/" rel="tag">协议</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/570/</link>
<title><![CDATA[为IIS FTP被动模式指定端口号]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Sat, 11 Jul 2009 01:51:19 +0000</pubDate> 
<guid>http://selboo.com.cn/post/570/</guid> 
<description>
<![CDATA[ 
	如果服务器使用iis(微软的WEB服务器平台)中的FTP服务,并且启用了TCP/IP筛选,而此时又需要启用被动模式连接(Passive),那么为了方便开放端口,我们可以指定Passive的范围,操作如下：<br/><br/><strong>方法1:</strong><br/><br/>执行程序代码<br/><br/>C:&#92;Inetpub&#92;Adminscripts&#92;adsutil.vbs set /MSFTPSVC/PassivePortRange "9000-9049"<br/>请注意:该端口范围是 5001-65535<br/><br/><strong>方法2:</strong><br/><br/>设置IIS可在线编辑,IIS管理器中设置.<br/><br/>打开下面这个文件:<br/><br/>C:&#92;WINDOWS&#92;system32&#92;inetsrv&#92;MetaBase.xml<br/>搜索 MaxConnections<br/>在MaxConnections下面新加一行,代码为:<br/><br/>PassivePortRange="9000-9049"<br/><br/><span style="color: #FF0000;">Ps: 方法一没有成功&nbsp;&nbsp;方法二成功了</span><br/>Tags - <a href="http://selboo.com.cn/tags/ftp/" rel="tag">ftp</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/569/</link>
<title><![CDATA[深度分析“Windows 半开连接数限制“]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Thu, 09 Jul 2009 08:29:06 +0000</pubDate> 
<guid>http://selboo.com.cn/post/569/</guid> 
<description>
<![CDATA[ 
	在讨论“半开连接”之前，我觉得最重要的一点是，必须弄清楚什么是“半开连接”。<br/>很遗憾，在这个文章里面回复的绝大部分人，可能包括我没有看到这个之前在内，都不知道什么是“半开连接”，更加不知道微软为什么要进行限制。<br/>所以就有诸如“2003是服务器，如果限制了基本网站就不要用了”之类可笑的观点了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;我们先来普及一下基本常识吧，下面的文字可能有点晦涩：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;建立TCP连接的标准过程是这样的：<br/>首先，请求端（客户端）发送一个包含SYN标志的TCP报文，SYN即同步（Synchronize），同步报文会指明客户端使用的端口以及TCP连接的初始序号； <br/>第二步，服务器在收到客户端的SYN报文后，将返回一个SYN+ACK的报文，表示客户端的请求被接受，同时TCP序号被加一，ACK即确认（Acknowledgement）。 <br/>第三步，客户端也返回一个确认报文ACK给服务器端，同样TCP序列号被加一，到此一个TCP连接完成。 <br/>以上的连接过程在TCP协议中被称为三次握手（Three-way Handshake）。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;问题就出在TCP连接的三次握手中，<br/>假设一个用户向服务器发送了SYN报文后突然死机或掉线，那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的（第三次握手无法完成），<br/>这种情况下服务器端一般会重试（再次发送SYN+ACK给客户端）并等待一段时间后丢弃这个未完成的连接。<br/>这段时间的长度我们称为SYN Timeout，一般来说这个时间是分钟的数量级（大约为30秒-2分钟）。一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题，<br/>但如果有一个恶意的攻击者大量模拟这种情况，服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接，即使是简单的保存并遍历也会消耗非常多的CPU时间和内存，何况还要不断对这个列表中的IP进行SYN+ACK的重试。<br/>实际上如果服务器的TCP/IP栈不够强大，最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大，服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求（毕竟客户端的正常请求比率非常之小）。<br/>此时从正常客户的角度看来，服务器失去响应，<br/>这种情况我们称作：服务器端受到了SYN Flood攻击（SYN洪水攻击）。<br/><br/>上面的文字可能很多人看不懂，那我们用比较简单的例子来解释：<br/><br/>1.第一次握手-----------电脑：服务器，你有陈冠希的照片吗？<br/>2.第二次握手-----------服务器：有，你是不是想要？<br/>3.第三次握手-----------电脑：当然想，你传给我。<br/>4.正式建立连接，双方开始传输照片。<br/><br/>在上面的例子中，如果电脑没有回答服务器的问题，就是第三次握手还没有完成，这样的连接就叫做“半开连接”。<br/><br/>微软为了防止SYN洪水攻击，在XP SP2中，限制了最大并发半开连接数为10。<br/>也就是说，使用XP SP2的电脑，最多可以同时向十台服务器询问：“服务器，你有陈冠希的照片吗”。<br/>如果电脑不回答服务器的发问：“有，你是不是想要？”的话，<br/>它就不能向第十一台服务器询问了。<br/>它必须先对前面十台服务器中的随便某一台回答“当然想，你传给我”，完成一次连接之后，才能向第十一台服务器进行询问。<br/><br/>说到这里，大家应该明白了吧？<br/>微软所谓的半开连接数限制，只是针对发起方（也就是上面例子中的电脑）的，不是针对接受方（也就是上面例子中的服务器）！<br/>一台使用XP SP2的电脑，如果它是半开连接的发起方，它就会受到这个限制。<br/>如果它是半开连接的接受方，那么，它是不会受到这个半开连接数的限制的！<br/><br/>以上只是针对XP SP2的分析，如果是使用2003或者2008的电脑呢？<br/>也是同样的道理，如果2003或者2008是接受方，比如我们常见的WEB服务器或者FTP服务器，那它们也不会受到半开连接数的限制！<br/>哪怕它们的最大并发半开连接数同样是10，也不会对它们的HTTP服务，或者FTP服务，有任何影响！<br/><br/>那么，该回到主题了，到底2003有没有限制最大并发半开连接数呢？<br/>楼主的分析已经很清楚了：<br/>以英文企业版Windows 2003 SP2的tcpip.sys为例，TCPMaxHalfOpen是5000。<br/>这很好的说明了，<br/>微软对英文企业版2003 SP2的最大并发半开连接数的限制为5000！<br/><br/>我们再想一想，现在互联网上有很多使用2003来架构的网站或者论坛，<br/>它们的最大同时访问量往往是用数万为单位来计算的，<br/>但是用户访问网站或者登陆论坛却没有感受到什么影响，除非是服务器受到SYN洪水攻击。<br/>这不正好说明了，微软所谓的半开连接数限制，只是针对发起方的吗？<br/><br/>所以我们可以得出一个结论：<br/>2003或者2008，同样有半开连接数的限制，<br/>只不过，只有当它们作为连接的发起方，比如BT下载的客户端，P2P网络电视的使用者时，才会受到这个限制；<br/>在它们作为连接的接受方，比如WEB服务器，或者FTP服务器时，是不会受到限制的。<br/>最后再解释一下注册表中的TCPMaxHalfOpen相关项目的设置和用途：<br/><br/>首先，SynAttackProtect的键值，类型为REG_DWORD，取值范围是0，1。从WIN2003 SP1开始默认值是1。<br/>这个值决定了系统受到SYN攻击时采取的保护措施，包括减少系统SYN+ACK的重试的次数等。<br/><br/>其次，TcpMaxHalfOpen的键值，类型为REG_DWORD，取值范围是100-0xFFFF，这个值是系统允许同时打开的半连接。<br/>默认情况下WIN2K PRO和SERVER是100，ADVANCED SERVER是500，WIN2003是5000。<br/><br/>然后，TcpMaxHalfOpenRetried的键值，类型为REG_DWORD，取值范围是80-0xFFFF，这个值决定了在什么情况下系统会打开SYN攻击保护。<br/>默认情况下WIN2K PRO和SERVER是80，ADVANCED SERVER是400，WIN2003是2500。<br/><br/>Win2003的SYN攻击保护机制是这样的：<br/><br/>正常情况下，WIN2003对TCP连接的三次握手有一个常规的设置，<br/>包括SYN Timeout时间、SYN-ACK的重试次数和SYN报文从路由器到系统再到Winsock的延时等。<br/>这个常规设置是针对系统性能进行优化的（安全和性能往往相互矛盾），所以可以给用户提供方便快捷的服务。<br/><br/>一旦服务器受到攻击，SYN半连接的数量超过TcpMaxHalfOpenRetried的设置，系统会认为自己受到了SYN Flood攻击。<br/>此时，设置在SynAttackProtect键值中的选项开始作用，SYN Timeout时间被减短，SYN-ACK的重试次数减少，<br/>系统也会自动对缓冲区中的报文进行延时，避免对TCP/IP堆栈造成过大的冲击，力图将攻击危害减到最低。<br/>如果攻击强度不断增大，超过了TcpMaxHalfOpen值，此时系统已经不能提供正常的服务了，更重要的是保证系统不会崩溃，<br/>系统将会丢弃任何超出TcpMaxHalfOpen值范围的SYN报文（应该是使用随机丢包策略），保证系统的稳定性。<br/><br/>所以，把TcpMaxHalfOpen值改小，只是为了加强系统对SYN洪水攻击的防御能力；<br/>改大，再大也超不过TCPIP.SYS的限制。<br/>这是微软对于“半开连接”接受方所采取的一种保护措施，<br/>和对“半开连接”发起方所采取的最大并发连接数限制，<br/>是相辅相成的。<br/>Tags - <a href="http://selboo.com.cn/tags/windows/" rel="tag">windows</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/568/</link>
<title><![CDATA[Windows SID 安全标识符]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Thu, 09 Jul 2009 07:54:54 +0000</pubDate> 
<guid>http://selboo.com.cn/post/568/</guid> 
<description>
<![CDATA[ 
	关于Windows SID---安全标识符<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在此我们先不去评论国外与国内等知名杀毒引擎的优缺点，但我们知道买一套正版的100个点左右的网络版杀毒引擎，最起码是上10万的。当然做我们这一行的，不可能拿出这样一份采购报告递给老总。于是我们不得不去网上寻找一些破解的，盗版，只要还能发挥一点作用的。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 于是在丁香鱼网站下了个瑞星中小型企业版(当然是破解的，不过瑞星官方似乎并不干涉，毕竟换个角度来说，丁香鱼这种作为似乎对于瑞星产品的推广是功不可默的)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于大多企业内部使用的办公电脑都是同配置的（方便采购，方便管理和维护），我在其中一台PC上全新安装了一个Windows XP，装好必要的应用软件，打好系统补丁，当然还得装个杀毒软件呀。我把我本人使用的电脑装上了瑞星服务器端和控制中心。样机装为客户端。于是一切设定都已OK，当然得ghost一个“*.gho”镜像，以便日后恢复及给同配置的电脑ghost这个目前处于最干净，最安全，最高速的Windows system 。<br/>于是问题出来了，情况如下：<br/>Server：我的电脑称作（装有瑞星网络版服务器端及控制中心）<br/>PC-A：样机（装有瑞星网络版客户端）<br/>PC-B：与样机PC-A相同的硬件配置，系统为PC-A所ghost的镜像<br/><br/>三台机为在线状态，所处环境为对等局域网。<br/>打开Server端的瑞星控制中心。控制中心只能看到：Server和PC-A且为在线状态，可以正常控制。于是重启PC-B，刷新控制中心，于是只能看到：Server和PC-B，也为在状态。<br/>于是反得测试了几次。情况依旧如此。<br/>Ghost系统，同一个CD-KEY，生成同一个SID，什么是SID？---安全标识符（Security Identifiers），是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时，将给网络上的每一个帐户发布一个唯一的 SID。<br/><br/>SID的作用 <br/>用户通过验证后，登陆进程会给用户一个访问令牌，该令牌相当于用户访问系统资源的票证，当用户试图访问系统资源时，将访问令牌提供给 Windows NT，然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象，Windows NT将会分配给用户适当的访问权限。 <br/>访问令牌是用户在通过验证的时候有登陆进程所提供的，所以改变用户的权限需要注销后重新登陆，重新获取访问令牌。<br/><br/>SID号码的组成 <br/>如果存在两个同样SID的用户，这两个帐户将被鉴别为同一个帐户，原理上如果帐户无限制增加的时候，会产生同样的SID，在通常的情况下SID是唯一的，他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。 <br/>一个完整的SID包括： <br/>• 用户和组的安全描述 <br/>• 48-bit的ID authority <br/>• 修订版本 <br/>• 可变的验证值Variable sub-authority values <br/>例：S-1-5-21-310440588-250036847-580389505-500 <br/>我们来先分析这个重要的SID。第一项S表示该字符串是SID；第二项是SID的版本号，对于2000来说，这个就是1；然后是标志符的颁发机构（identifier authority），对于2000内的帐户，颁发机构就是NT，值是5。然后表示一系列的子颁发机构，前面几项是标志域的，最后一个标志着域内的帐户和组。<br/>看到这些知识点之后，我也想起曾经做AD测试的时候，有两台Windows怎么也无法加入域控制器。<br/><br/>查看系统SID有多种方法：<br/>通过注册表<br/>开始－运行－regedt－HKEY_LOCAL_MACHINE&#92;SAM&#92;SAM&#92;Domains&#92;Builtin&#92;Aliases&#92;Members，找到本地的域的代码，展开后，得到的就是本地帐号的所有SID列表。 <br/>其中很多值都是固定的，比如第一个000001F4（16进制），换算成十进制是500，说明是系统建立的内置管理员帐号administrator，000001F5换算成10进制是501，也就是GUEST帐号了，详细的参照后面的列表。 这一项默认是system可以完全控制，这也就是为什么要获得这个需要一个System的Cmd的Shell的原因了，当然如果权限足够的话你可以把你要添加的帐号添加进去。 <br/>或者使用Support Tools的Reg工具： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg query "HKEY_LOCAL_MACHINE&#92;SOFTWARE&#92;Microsoft&#92;Windows NT&#92;CurrentVersion&#92;ProfileList<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也可以通过CMD中的命令来查看SID,用命令“whoami /user”来查看用户的SID，但在我的测试中，此命令只有在Server版System中才能使用。<br/>如果解决这种因为SID重复而产生的问题呢？就以我这个瑞星网络版来讲吧：<br/>找到安装的光盘（注意版本区别），找到support&#92;tools下的一个叫做deploy.cab的压缩包，解压缩到任意一个目录里面，运行里面的sysprep.exe，在程序窗口中单击：“工厂”，后电脑会自动关机（这个选项可以自己选，重启，关机等）在开机后，此程序还会启动在桌面上，再单击：“重新封装”再重启电脑后，系统会重新配置，并要你再次输入CD-KEY和管理员密码，建一个新的用户名，进入Windows桌面后，你再查看SID以及系统属性的“注册到”一栏中的信息和PID号已经改变。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;问题解决，大快人心！<br/><br/>下面是SID末尾RID值的列表，括号内为16进制： <br/><br/>Built-In Users <br/>DOMAINNAME&#92;ADMINISTRATOR <br/>S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4) <br/><br/>DOMAINNAME&#92;GUEST <br/>S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5) <br/>Built-In Global Groups <br/>DOMAINNAME&#92;DOMAIN ADMINS <br/>S-1-5-21-917267712-1342860078-1792151419-512 (=0x200) <br/><br/>DOMAINNAME&#92;DOMAIN USERS <br/>S-1-5-21-917267712-1342860078-1792151419-513 (=0x201) <br/><br/>DOMAINNAME&#92;DOMAIN GUESTS <br/>S-1-5-21-917267712-1342860078-1792151419-514 (=0x202) <br/>Built-In Local Groups <br/>BUILTIN&#92;ADMINISTRATORS S-1-5-32-544 (=0x220) <br/>BUILTIN&#92;USERS S-1-5-32-545 (=0x221) <br/>BUILTIN&#92;GUESTS S-1-5-32-546 (=0x222) <br/>BUILTIN&#92;ACCOUNT OPERATORS S-1-5-32-548 (=0x224) <br/>BUILTIN&#92;SERVER OPERATORS S-1-5-32-549 (=0x225) <br/>BUILTIN&#92;PRINT OPERATORS S-1-5-32-550 (=0x226) <br/>BUILTIN&#92;BACKUP OPERATORS S-1-5-32-551 (=0x227) <br/>BUILTIN&#92;REPLICATOR S-1-5-32-552 (=0x228) <br/>Special Groups <br/>&#92;CREATOR OWNER S-1-3-0 <br/>&#92;EVERYONE S-1-1-0 <br/>NT AUTHORITY&#92;NETWORK S-1-5-2 <br/>NT AUTHORITY&#92;INTERACTIVE S-1-5-4 <br/>NT AUTHORITY&#92;SYSTEM S-1-5-18 <br/>NT AUTHORITY&#92;authenticated users S-1-5-11 *<br/><br/>Tags - <a href="http://selboo.com.cn/tags/windows/" rel="tag">windows</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/567/</link>
<title><![CDATA[修改TCPIP.SYS破解TCP/IP线程限制]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Thu, 09 Jul 2009 07:54:15 +0000</pubDate> 
<guid>http://selboo.com.cn/post/567/</guid> 
<description>
<![CDATA[ 
	Windows XP_SP2、XP_64、2003_SP1微软做了TCP/IP线程限制：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每个进程通过TCP/IP连接的网络线程最多只能有10个，微软这样做的目的是为了限制蠕虫的散播速度。但这是把双刃剑，这样也限制了用户的正常网络通信，尤其是对下载操作，如BT。很多人在升级到XP_SP2后发现网络连接经常时断时续。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打开 控制面板 -> 管理工具 -> 事件查看器<br/>在'系统'事件里，如果有ID号为4226的TCP/IP事件(黄色叹号的警告)，就说明你的系统有这方面的问题。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决方法是修改TCPIP.SYS文件中的连接数限制。这里我推荐一个德国的小软件EvID4226Patch<br/>它的官网是http://www.lvllord.de/ ，这个软件可以对 XP_SP2、XP_64、2003_SP1进行修改。<br/>打开软件后进入个DOS界面，输入你要修改的值，尽量大些，推荐至少100，我是2048。<br/>按Y确定后重启。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再推荐个简单的，比特精灵自带个TCP/IP连接数补丁，应用起来很简单，记住要下最新版的。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其它软件也有带类似比特精灵这种补丁的，比如讯雷，就是补丁更新不及时。有时微软的IE安全补丁会升级TCPIP.SYS，就需要重新修改这个文件了。所以还是EvID4226Patch最快。<br/><br/>Tags - <a href="http://selboo.com.cn/tags/tcp%252Fip/" rel="tag">tcp/ip</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/531/</link>
<title><![CDATA[ping测试批处理(第二版)]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 08 Jun 2009 04:38:24 +0000</pubDate> 
<guid>http://selboo.com.cn/post/531/</guid> 
<description>
<![CDATA[ 
	<div class="code">@echo off<br/>for /f &quot;delims=&quot; %%a in (data.txt) do&nbsp;&nbsp;(<br/>echo starttime %date:~0,10% %time% &gt;&gt; %%a.ping<br/>start/b ping %%a -n 2 -l 32 &gt;&gt; %%a.ping<br/>start/b tracert -d %%a &gt;&gt; %%a.tracert<br/>)<br/>:a<br/>set c=0<br/>for /f %%a in (&#039;tasklist^&#124;findstr/i &quot;ping.exe tracert.exe&quot;&#039;) do set c=1<br/>if %c%==1 goto a<br/>for /f &quot;delims=&quot; %%a in (data.txt) do&nbsp;&nbsp;(<br/>echo ===================%%a=================== &gt;&gt; ping.log<br/>type %%a.ping &#124;findstr starttime &gt;&gt; ping.log<br/>type %%a.ping &#124;findstr Packets &gt;&gt; ping.log<br/>type %%a.ping &#124;findstr Minimum &gt;&gt; ping.log<br/>echo. &gt;&gt;ping.log<br/><br/>echo ===================%%a=================== &gt;&gt; tracert.log<br/>type %%a.tracert &#124;findstr %%a &gt;&gt; tracert.log<br/>echo. &gt;&gt;tracert.log<br/>del %%a.ping<br/>del %%a.tracert<br/>)<br/>echo -------------------------------------------------------------------------------- &gt;&gt; ping.log<br/>echo -------------------------------------------------------------------------------- &gt;&gt; ping.log<br/>echo -------------------------------------------------------------------------------- &gt;&gt; tracert.log<br/>echo -------------------------------------------------------------------------------- &gt;&gt; tracert.log</div><br/>过后再增加邮件传送<br/>把ping.log tracert.log结果 以邮件形式发送到指定邮箱<br/><br/>发送邮件参考<br/>cmd下邮件发送工具blat <a href="http://selboo.com.cn/post/532/" target="_blank">http://selboo.com.cn/post/532/</a><br/><br/>判断进程是否存在<br/><br/><div class="code">tasklist /nh&#124;find /i &quot;cmd.exe&quot;<br/>if ERRORLEVEL 1 (echo ok) else (exit)</div><br/>Tags - <a href="http://selboo.com.cn/tags/ping/" rel="tag">ping</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/529/</link>
<title><![CDATA[cmd下修改网络配置]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Fri, 05 Jun 2009 10:26:54 +0000</pubDate> 
<guid>http://selboo.com.cn/post/529/</guid> 
<description>
<![CDATA[ 
	C:&#92;Documents and Settings&#92;Administrator>netsh<br/>netsh>interface<br/>netsh interface>ip<br/>netsh interface ip>show address<br/>netsh interface ip>set address "本地连接" static 172.16.28.115 255.255.255.0 gateway=172.16.28.1<br/><br/>以上命令可以一起执行 如下<br/>C:&#92;Documents and Settings&#92;Administrator>netsh interface ip set address "本地连接" static 172.16.28.115 255.255.255.0 gateway=172.16.28.1<br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E7%25BD%2591%25E7%25BB%259C/" rel="tag">网络</a> , <a href="http://selboo.com.cn/tags/cmd/" rel="tag">cmd</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/525/</link>
<title><![CDATA[ping测试批处理]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Tue, 02 Jun 2009 02:26:22 +0000</pubDate> 
<guid>http://selboo.com.cn/post/525/</guid> 
<description>
<![CDATA[ 
	更新 ping测试批处理(第二版)&nbsp;&nbsp;<a href="http://selboo.com.cn/post/531/" target="_blank">http://selboo.com.cn/post/531/</a><br/><br/>data.txt<br/>要测试的ip列表<br/><br/>1.bat<br/>生成ping结果<br/><br/>2.bat<br/>提取 ping的 丢包率 最大 最下 平均<br/><br/>loss.txt<br/>生成结果<br/><br/><span style="font-size: 18px;">1.bat</span><br/><div class="code">for /f &quot;delims=&quot; %%a in (data.txt) do&nbsp;&nbsp;(<br/>start /b ping %%a -n 10 -l 32 &gt; %%a.ping<br/>start /b tracert -d %%a &gt; %%a.tracert<br/>)</div>可以修改 ping 次数 包的大小<br/><br/><span style="font-size: 18px;">2.bat</span><br/><div class="code">for /f &quot;delims=&quot; %%a in (data.txt) do&nbsp;&nbsp;(<br/>echo ===============%%a=============== &gt;&gt; loss.log<br/>type %%a.ping &#124;findstr Packets &gt;&gt; loss.log<br/>type %%a.ping &#124;findstr Minimum &gt;&gt; loss.log<br/>del %%a.ping<br/>)</div>提取 ping的 丢包率 最大 最下 平均 写入loss.log 并删除结果<br/><br/><span style="font-size: 18px;">使用</span><br/>吧要测试的ip列表写入data.txt 运行1.bat 等1.bat结束以后在执行2.bat 生成loss.log就是想要的结果<br/>Tags - <a href="http://selboo.com.cn/tags/ping/" rel="tag">ping</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/519/</link>
<title><![CDATA[注册表里注册自己的协议]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Fri, 22 May 2009 05:46:22 +0000</pubDate> 
<guid>http://selboo.com.cn/post/519/</guid> 
<description>
<![CDATA[ 
	from：http://phpor.net/blog/read.php?416<br/><br/>im软件但凡要从web直接启动桌面客户端都是通过注册自己的协议来实现的，如果你已经安装了qq，你们 直接在浏览器的地址栏里输入：qq:// 就可以启动qq； 如果你安装了uc，那么直接在浏览器的地址栏里输入： uc:// 就可以直接启动uc了，当然处于安全考虑，可能会有提示的，因为你要从浏览器中跳出来去做其它浏览器无法控制的事情； 所以如果你在开始=>运行 里，输入： qq:// 或 uc:// 就不会提示，而是直接启动qq或uc了，这里也顺便给出了启动qq或uc的另类方法，如果你找不到qq或uc的快捷方式，或者找起来很麻烦，就可以这么搞了。下面还是赶快进入正题吧：<br/><br/>既然qq:// uc://都是一种协议，那么就可以按照http或https来修改了，开始=> 运行=> regedit<br/><br/>然后查找https 全字匹配，只查找“项”（这样会快而且精确），然后将https部分导出成reg文件，内容大致如下：<br/><br/><div class="code">Windows Registry Editor Version 5.00<br/><br/>&#91;HKEY_CLASSES_ROOT&#92;https&#93;<br/>@=&quot;Safari URL&quot;<br/>&quot;EditFlags&quot;=dword:00000002<br/>&quot;URL Protocol&quot;=&quot;&quot;<br/>&#91;HKEY_CLASSES_ROOT&#92;https&#92;DefaultIcon&#93;<br/>@=hex(2):43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,00,46,&#92;<br/>00,69,00,6c,00,65,00,73,00,5c,00,53,00,61,00,66,00,61,00,72,00,69,00,5c,00,&#92;<br/>53,00,61,00,66,00,61,00,72,00,69,00,2e,00,65,00,78,00,65,00,2c,00,31,00,00,&#92;<br/>00<br/><br/>&#91;HKEY_CLASSES_ROOT&#92;https&#92;shell&#93;<br/>&#91;HKEY_CLASSES_ROOT&#92;https&#92;shell&#92;open&#93;<br/>&#91;HKEY_CLASSES_ROOT&#92;https&#92;shell&#92;open&#92;command&#93;<br/>@=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,&#92;<br/>00,46,00,69,00,6c,00,65,00,73,00,5c,00,53,00,61,00,66,00,61,00,72,00,69,00,&#92;<br/>5c,00,53,00,61,00,66,00,61,00,72,00,69,00,2e,00,65,00,78,00,65,00,22,00,20,&#92;<br/>00,2d,00,75,00,72,00,6c,00,20,00,22,00,25,00,31,00,22,00,00,00</div><br/><br/>编辑reg文件:<br/><br/>去掉不需要的东西，把https替换成shagua（如果你愿意，可以随便起名字），把command部分替换成自己想要执行的应用程序，大致如下：<br/><br/><div class="code">Windows Registry Editor Version 5.00<br/><br/>&#91;HKEY_CLASSES_ROOT&#92;shagua&#93;<br/>@=&quot;这里随便&quot;<br/>&quot;EditFlags&quot;=dword:00000002<br/>&quot;URL Protocol&quot;=&quot;&quot;<br/>&#91;HKEY_CLASSES_ROOT&#92;shagua&#92;shell&#93;<br/>&#91;HKEY_CLASSES_ROOT&#92;shagua&#92;shell&#92;open&#93;<br/>&#91;HKEY_CLASSES_ROOT&#92;shagua&#92;shell&#92;open&#92;command&#93;<br/>@=&quot;&#92;&quot;应用程序名&#92;&quot; &#92;&quot;%1&#92;&quot;&quot;</div><br/><br/>保存该文件，双击执行，傻瓜协议就注册完了，在浏览器的地址栏里输入： <br/>shagua://<br/>这时就可以启动你的应用程序了<br/><br/>就这么简单？这只是入门，还有更多，要学会自己研究哦:)<br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E5%258D%258F%25E8%25AE%25AE/" rel="tag">协议</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/473/</link>
<title><![CDATA[网通电信地址列表(双出口、多出口首选)]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Tue, 14 Apr 2009 08:32:44 +0000</pubDate> 
<guid>http://selboo.com.cn/post/473/</guid> 
<description>
<![CDATA[ 
	网通电信地址列表&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>中国电信&nbsp;&nbsp;&nbsp;&nbsp;中国网通&nbsp;&nbsp;<br/>58.32.0.0/13&nbsp;&nbsp;202.97.32.0/19&nbsp;&nbsp;58.16.0.0/16&nbsp;&nbsp;202.99.208.0/20<br/>58.40.0.0/15&nbsp;&nbsp;202.97.64.0/19&nbsp;&nbsp;58.17.0.0/17&nbsp;&nbsp;202.99.224.0/21<br/>58.42.0.0/16&nbsp;&nbsp;202.97.96.0/20&nbsp;&nbsp;58.17.128.0/17&nbsp;&nbsp;202.99.232.0/21<br/>58.43.0.0/16&nbsp;&nbsp;202.97.112.0/20&nbsp;&nbsp;58.18.0.0/16&nbsp;&nbsp;202.99.240.0/20<br/>58.44.0.0/14&nbsp;&nbsp;202.98.32.0/21&nbsp;&nbsp;58.19.0.0/16&nbsp;&nbsp;202.102.128.0/21<br/>58.48.0.0/13&nbsp;&nbsp;202.98.48.0/20&nbsp;&nbsp;58.20.0.0/16&nbsp;&nbsp;202.102.224.0/21<br/>58.59.128.0/17&nbsp;&nbsp;202.98.64.0/19&nbsp;&nbsp;58.21.0.0/16&nbsp;&nbsp;202.102.232.0/21<br/>58.60.0.0/14&nbsp;&nbsp;202.98.96.0/21&nbsp;&nbsp;58.22.0.0/15&nbsp;&nbsp;202.106.0.0/16<br/>58.208.0.0/12&nbsp;&nbsp;202.98.128.0/19&nbsp;&nbsp;58.240.0.0/15&nbsp;&nbsp;202.107.0.0/17<br/>59.32.0.0/13&nbsp;&nbsp;202.98.160.0/21&nbsp;&nbsp;58.242.0.0/15&nbsp;&nbsp;202.108.0.0/16<br/>59.40.0.0/15&nbsp;&nbsp;202.98.168.0/21&nbsp;&nbsp;58.244.0.0/15&nbsp;&nbsp;202.110.0.0/17<br/>59.42.0.0/16&nbsp;&nbsp;202.98.192.0/21&nbsp;&nbsp;58.246.0.0/15&nbsp;&nbsp;202.111.128.0/18<br/>59.44.0.0/14&nbsp;&nbsp;202.98.200.0/21&nbsp;&nbsp;58.248.0.0/13&nbsp;&nbsp;203.93.8.0/24<br/>59.48.0.0/16&nbsp;&nbsp;202.98.208.0/20&nbsp;&nbsp;60.0.0.0/13&nbsp;&nbsp;203.93.192.0/18<br/>59.49.0.0/17&nbsp;&nbsp;202.98.224.0/21&nbsp;&nbsp;60.8.0.0/15&nbsp;&nbsp;210.13.128.0/17<br/>59.49.128.0/17&nbsp;&nbsp;202.98.232.0/21&nbsp;&nbsp;60.10.0.0/16&nbsp;&nbsp;210.14.160.0/19<br/>59.50.0.0/16&nbsp;&nbsp;202.98.240.0/20&nbsp;&nbsp;60.11.0.0/16&nbsp;&nbsp;210.14.192.0/19<br/>59.51.0.0/17&nbsp;&nbsp;202.99.192.0/21&nbsp;&nbsp;60.12.0.0/16&nbsp;&nbsp;210.15.32.0/19<br/>59.51.128.0/17&nbsp;&nbsp;202.100.96.0/21&nbsp;&nbsp;60.13.0.0/18&nbsp;&nbsp;210.15.96.0/19<br/>59.52.0.0/14&nbsp;&nbsp;202.100.104.0/21&nbsp;&nbsp;60.13.128.0/17&nbsp;&nbsp;210.15.128.0/18<br/>59.56.0.0/14&nbsp;&nbsp;202.100.112.0/20&nbsp;&nbsp;60.14.0.0/15&nbsp;&nbsp;210.21.0.0/16<br/>59.60.0.0/15&nbsp;&nbsp;202.100.136.0/21&nbsp;&nbsp;60.16.0.0/13&nbsp;&nbsp;210.52.128.0/17<br/>59.62.0.0/15&nbsp;&nbsp;202.100.160.0/21&nbsp;&nbsp;60.24.0.0/14&nbsp;&nbsp;210.53.0.0/17<br/>60.160.0.0/15&nbsp;&nbsp;202.100.168.0/21&nbsp;&nbsp;60.30.0.0/16&nbsp;&nbsp;210.53.128.0/17<br/>60.162.0.0/15&nbsp;&nbsp;202.100.176.0/20&nbsp;&nbsp;60.31.0.0/16&nbsp;&nbsp;210.74.96.0/19<br/>60.164.0.0/15&nbsp;&nbsp;202.100.192.0/21&nbsp;&nbsp;60.208.0.0/13&nbsp;&nbsp;210.74.128.0/19<br/>60.166.0.0/15&nbsp;&nbsp;202.100.208.0/20&nbsp;&nbsp;60.216.0.0/15&nbsp;&nbsp;210.82.0.0/15<br/>60.168.0.0/13&nbsp;&nbsp;202.100.224.0/19&nbsp;&nbsp;60.218.0.0/15&nbsp;&nbsp;218.8.0.0/14<br/>60.176.0.0/12&nbsp;&nbsp;202.101.0.0/18&nbsp;&nbsp;60.220.0.0/14&nbsp;&nbsp;218.12.0.0/16<br/>61.133.128.0/17&nbsp;&nbsp;202.101.64.0/19&nbsp;&nbsp;61.48.0.0/13&nbsp;&nbsp;218.21.128.0/17<br/>61.134.0.0/18&nbsp;&nbsp;202.101.96.0/19&nbsp;&nbsp;61.133.0.0/17&nbsp;&nbsp;218.24.0.0/14<br/>61.134.64.0/19&nbsp;&nbsp;202.101.128.0/18&nbsp;&nbsp;61.134.96.0/19&nbsp;&nbsp;218.56.0.0/14<br/>61.136.128.0/17&nbsp;&nbsp;202.101.224.0/21&nbsp;&nbsp;61.134.128.0/17&nbsp;&nbsp;218.60.0.0/15<br/>61.137.0.0/17&nbsp;&nbsp;202.102.0.0/19&nbsp;&nbsp;61.135.0.0/16&nbsp;&nbsp;218.67.128.0/17<br/>61.138.192.0/18&nbsp;&nbsp;202.102.32.0/19&nbsp;&nbsp;61.137.128.0/17&nbsp;&nbsp;218.68.0.0/15<br/>61.139.0.0/17&nbsp;&nbsp;202.102.64.0/18&nbsp;&nbsp;61.138.0.0/17&nbsp;&nbsp;218.104.0.0/14<br/>61.139.192.0/18&nbsp;&nbsp;202.103.0.0/21&nbsp;&nbsp;61.138.128.0/18&nbsp;&nbsp;219.154.0.0/15<br/>61.140.0.0/14&nbsp;&nbsp;202.103.8.0/21&nbsp;&nbsp;61.139.128.0/18&nbsp;&nbsp;219.156.0.0/15<br/>61.144.0.0/14&nbsp;&nbsp;202.103.16.0/20&nbsp;&nbsp;61.148.0.0/15&nbsp;&nbsp;219.158.0.0/17<br/>61.152.0.0/14&nbsp;&nbsp;202.103.32.0/19&nbsp;&nbsp;61.156.0.0/16&nbsp;&nbsp;219.158.128.0/17<br/>61.157.0.0/16&nbsp;&nbsp;202.103.96.0/21&nbsp;&nbsp;61.159.0.0/18&nbsp;&nbsp;219.159.0.0/18<br/>61.159.64.0/18&nbsp;&nbsp;202.103.192.0/19&nbsp;&nbsp;61.161.0.0/18&nbsp;&nbsp;220.252.0.0/16<br/>61.159.128.0/17&nbsp;&nbsp;202.103.224.0/21&nbsp;&nbsp;61.161.128.0/17&nbsp;&nbsp;221.0.0.0/15<br/>61.160.0.0/16&nbsp;&nbsp;202.104.0.0/15&nbsp;&nbsp;61.162.0.0/16&nbsp;&nbsp;221.2.0.0/16<br/>61.161.64.0/18&nbsp;&nbsp;202.107.128.0/17&nbsp;&nbsp;61.163.0.0/16&nbsp;&nbsp;221.3.0.0/17<br/>61.164.0.0/15&nbsp;&nbsp;202.109.0.0/16&nbsp;&nbsp;61.167.0.0/16&nbsp;&nbsp;221.3.128.0/17<br/>61.166.0.0/16&nbsp;&nbsp;202.110.128.0/18&nbsp;&nbsp;61.168.0.0/16&nbsp;&nbsp;221.4.0.0/16<br/>61.169.0.0/16&nbsp;&nbsp;202.111.0.0/17&nbsp;&nbsp;61.176.0.0/16&nbsp;&nbsp;221.5.0.0/17<br/>61.170.0.0/15&nbsp;&nbsp;218.4.0.0/15&nbsp;&nbsp;61.179.0.0/16&nbsp;&nbsp;221.5.128.0/17<br/>61.172.0.0/14&nbsp;&nbsp;218.6.0.0/16&nbsp;&nbsp;61.181.0.0/16&nbsp;&nbsp;221.6.0.0/16<br/>61.177.0.0/16&nbsp;&nbsp;218.13.0.0/16&nbsp;&nbsp;61.182.0.0/16&nbsp;&nbsp;221.7.0.0/19<br/>61.178.0.0/16&nbsp;&nbsp;218.14.0.0/15&nbsp;&nbsp;61.189.0.0/17&nbsp;&nbsp;221.7.32.0/19<br/>61.180.0.0/17&nbsp;&nbsp;218.16.0.0/14&nbsp;&nbsp;125.32.0.0/16&nbsp;&nbsp;221.7.64.0/19<br/>61.183.0.0/16&nbsp;&nbsp;218.20.0.0/16&nbsp;&nbsp;125.35.128.0/17&nbsp;&nbsp;221.7.96.0/19<br/>61.184.0.0/14&nbsp;&nbsp;218.21.0.0/17&nbsp;&nbsp;125.36.0.0/14&nbsp;&nbsp;221.10.0.0/16<br/>61.188.0.0/16&nbsp;&nbsp;218.22.0.0/15&nbsp;&nbsp;125.40.0.0/13&nbsp;&nbsp;221.11.0.0/17<br/>61.189.128.0/17&nbsp;&nbsp;218.62.128.0/17&nbsp;&nbsp;202.96.0.0/18&nbsp;&nbsp;221.11.128.0/18<br/>61.190.0.0/15&nbsp;&nbsp;218.63.0.0/16&nbsp;&nbsp;202.96.64.0/21&nbsp;&nbsp;221.11.192.0/19<br/>125.64.0.0/13&nbsp;&nbsp;218.64.0.0/15&nbsp;&nbsp;202.96.72.0/21&nbsp;&nbsp;221.12.0.0/17<br/>125.72.0.0/16&nbsp;&nbsp;218.66.0.0/16&nbsp;&nbsp;202.97.128.0/18&nbsp;&nbsp;221.12.128.0/18<br/>125.73.0.0/16&nbsp;&nbsp;218.67.0.0/17&nbsp;&nbsp;202.97.224.0/21&nbsp;&nbsp;221.13.0.0/18<br/>125.74.0.0/15&nbsp;&nbsp;218.70.0.0/15&nbsp;&nbsp;202.97.240.0/20&nbsp;&nbsp;221.13.64.0/19<br/>125.76.0.0/17&nbsp;&nbsp;218.72.0.0/13&nbsp;&nbsp;202.98.0.0/21&nbsp;&nbsp;221.13.96.0/19<br/>125.80.0.0/13&nbsp;&nbsp;218.80.0.0/12&nbsp;&nbsp;202.98.8.0/21&nbsp;&nbsp;221.13.128.0/17<br/>125.88.0.0/13&nbsp;&nbsp;219.128.0.0/12&nbsp;&nbsp;202.99.64.0/19&nbsp;&nbsp;221.14.0.0/15<br/>125.104.0.0/13&nbsp;&nbsp;219.144.0.0/13&nbsp;&nbsp;202.99.96.0/21&nbsp;&nbsp;221.192.0.0/15<br/>125.112.0.0/12&nbsp;&nbsp;219.152.0.0/15&nbsp;&nbsp;202.99.128.0/19&nbsp;&nbsp;221.194.0.0/16<br/>202.96.96.0/21&nbsp;&nbsp;219.159.64.0/18&nbsp;&nbsp;202.99.160.0/21&nbsp;&nbsp;221.195.0.0/16<br/>202.96.104.0/21&nbsp;&nbsp;219.159.128.0/17&nbsp;&nbsp;202.99.168.0/21&nbsp;&nbsp;221.196.0.0/15<br/>202.96.112.0/20&nbsp;&nbsp;220.160.0.0/11&nbsp;&nbsp;202.99.176.0/20&nbsp;&nbsp;221.198.0.0/16<br/>202.96.128.0/21&nbsp;&nbsp;221.224.0.0/13&nbsp;&nbsp;221.208.0.0/14&nbsp;&nbsp;221.199.0.0/19<br/>202.96.136.0/21&nbsp;&nbsp;221.232.0.0/14&nbsp;&nbsp;221.212.0.0/16&nbsp;&nbsp;221.199.32.0/20<br/>202.96.144.0/20&nbsp;&nbsp;221.236.0.0/15&nbsp;&nbsp;221.213.0.0/16&nbsp;&nbsp;221.199.128.0/18<br/>202.96.160.0/21&nbsp;&nbsp;221.239.128.0/17&nbsp;&nbsp;221.216.0.0/13&nbsp;&nbsp;221.199.192.0/20<br/>202.96.168.0/21&nbsp;&nbsp;222.72.0.0/15&nbsp;&nbsp;222.128.0.0/14&nbsp;&nbsp;221.200.0.0/14<br/>202.96.176.0/20&nbsp;&nbsp;222.75.0.0/16&nbsp;&nbsp;222.132.0.0/14&nbsp;&nbsp;221.204.0.0/15<br/>202.96.200.0/21&nbsp;&nbsp;222.76.0.0/14&nbsp;&nbsp;222.136.0.0/13&nbsp;&nbsp;221.206.0.0/16<br/>202.96.208.0/20&nbsp;&nbsp;222.80.0.0/15&nbsp;&nbsp;222.160.0.0/15&nbsp;&nbsp;221.207.0.0/18<br/>202.96.224.0/21&nbsp;&nbsp;222.82.0.0/16&nbsp;&nbsp;222.162.0.0/16&nbsp;&nbsp;221.207.64.0/18<br/>202.97.0.0/21&nbsp;&nbsp;222.83.0.0/17&nbsp;&nbsp;222.163.0.0/19&nbsp;&nbsp;221.207.128.0/17<br/>202.97.8.0/21&nbsp;&nbsp;222.83.128.0/17&nbsp;&nbsp;222.163.32.0/19&nbsp;&nbsp;222.163.64.0/18<br/>202.97.16.0/20&nbsp;&nbsp;222.84.0.0/16&nbsp;&nbsp;222.163.128.0/17<br/>222.219.0.0/16&nbsp;&nbsp;222.85.128.0/17&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.220.0.0/15&nbsp;&nbsp;222.86.0.0/15&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.240.0.0/13&nbsp;&nbsp;222.90.0.0/15&nbsp;&nbsp;&nbsp;&nbsp;<br/>58.56.0.0/15&nbsp;&nbsp;222.92.0.0/14&nbsp;&nbsp;&nbsp;&nbsp;<br/>58.58.0.0/16&nbsp;&nbsp;222.172.128.0/17&nbsp;&nbsp;&nbsp;&nbsp;<br/>58.59.0.0/17&nbsp;&nbsp;222.176.0.0/13&nbsp;&nbsp;&nbsp;&nbsp;<br/>221.238.0.0/16&nbsp;&nbsp;222.184.0.0/13&nbsp;&nbsp;&nbsp;&nbsp;<br/>221.239.0.0/17&nbsp;&nbsp;222.208.0.0/13&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.74.0.0/16&nbsp;&nbsp;222.216.0.0/15&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.85.0.0/17&nbsp;&nbsp;222.218.0.0/16&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.88.0.0/15&nbsp;&nbsp;222.172.0.0/17&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.168.0.0/15&nbsp;&nbsp;222.173.0.0/16&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.174.0.0/15&nbsp;&nbsp;&nbsp;&nbsp;<br/>222.222.0.0/15&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>双出口、多出口策略地址列表<br/>Tags - <a href="http://selboo.com.cn/tags/%25E7%2594%25B5%25E4%25BF%25A1/" rel="tag">电信</a> , <a href="http://selboo.com.cn/tags/%25E7%25BD%2591%25E9%2580%259A/" rel="tag">网通</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/438/</link>
<title><![CDATA[衡量web性能一个性能等式]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 16 Mar 2009 15:12:08 +0000</pubDate> 
<guid>http://selboo.com.cn/post/438/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;给大家分享一个衡量 Web 应用程序性能的一个公式,今天不经意中看到了这个公式,感觉获益良多,并做了一点小小的修改,在这里分享给大家,希望对大家有所帮助.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R=吞吐量/带宽+RTT+Appturns(RTT)/并发请求+Cs+Cc<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个公式来源于2006 年 9 月,NetForecast 的 Peter Sevcik 和 Rebecca Wetzel 发表了一篇名为 "Field Guide to Application Delivery Systems" 的论文利用此公式事实上,如果想在 Web 站点中嵌入调试模式以利用这一性能等式,可以对所有这些元素自行编写代码.这样做有充分的理由：如果能够定期在浏览器中列出性能等式元素,则很容易就可以检测出存在性能问题的位置.以下一些参数的说明变量 定义 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R 响应时间.从用户请求页面(通过单击链接等操作)到整个页面全部呈现在用户计算机中所需的总时间.通常以秒为测量单位. 负载 发送到浏览器的字节总数,包括标记和所有资源(例如,CSS、JS 和图像文件等). <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;带宽 与浏览器之间的传输率.这可能是不对称的,如果给定页面是从多个源生成的,这可能表示多个速度.通常情况下,会加总取一平均值作为单一带宽,单位为字节/秒. AppTurns 给定页面所需的资源文件数.这些资源文件包括 CSS、JS、图像等,还包括浏览器在页面显示过程中检索的任何其他文件.在此等式中,HTML 页面是通过在 AppTurns 表达式之前加上往返时间 (RTT) 单独计算的. RTT 往返所需的时间,与传输的字节无关.对于页面本身,每个请求至少需要耗用一个 RTT.通常以毫秒为测量单位. 并发请求 浏览器同时发出的请求资源文件的请求数.默认情况下,Internet Explorer 执行两个并发请求.此设置可以进行调整,但很少这样做. Cs 服务器上的计算时间.这是运行代码、从数据库检索数据以及合成要发送到浏览器的响应所需的时间.测量单位为毫秒.Cc 客户端上的计算时间.这是浏览器在屏幕上实际显示 HTML、执行 JavaScript、实施 CSS 规则等所需的时间. <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTT(Round-Trip Time): 往返时延,在计算机网络中它也是一个重要的性能指标,它表示从发送端发送数据开始,到发送端收到来自接收端的确使用过LoadRunner的朋友都知道我们能够很容易知道一个业务的吞吐量,AppTurns.对于RTT,并发请求我们能够很容易获得.认(接收端收到数据后便立即发送确认)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于业务的吞吐量,R响应时间,AppTurns.宽带,RTT,我们可以通过去时些性能测试工具很容易获得.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于Cs和CC在 ASP.NET 页面中,很容易就可以编写代码来记录页面开始执行的准确时间,然后再将其从执行完成时的当时时间中减掉.客户端也是如此；可在 HTML 页面顶部执行一段 JavaScript 来记录开始时间,然后当页面执行完毕并触发了 OnLoad 事件时将其从当时时间中减掉.事实上,如果想在 Web 站点中嵌入调试模式以利用这一性能等式,可以对所有这些元素自行编写代码.这样做有充分的理由：如果能够定期在浏览器中列出性能等式元素,则很容易就可以检测出存在性能问题的位置.例如,假设您的 ASP.NET 应用程序的用户都位于其他洲,而且使用的是低带宽.由于 ping 时间较高 (> 200ms) 而带宽较低 (< 500kbps),所以这些用户非常容易受应用程序总负载和往返次数的影响.这时您必须站在这些用户的角度来审视您的应用程序,因为他们的体验与您的体验截然不同.<br/>Tags - <a href="http://selboo.com.cn/tags/web/" rel="tag">web</a> , <a href="http://selboo.com.cn/tags/%25E6%2580%25A7%25E8%2583%25BD/" rel="tag">性能</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/422/</link>
<title><![CDATA[IIS日志清理(CMD版,VBS版,JS版,WSH版)]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 02 Mar 2009 05:26:36 +0000</pubDate> 
<guid>http://selboo.com.cn/post/422/</guid> 
<description>
<![CDATA[ 
	来源：柳永法(yongfa365)'Blog<br/><br/>专题名称：IIS日志清理专题,CMD版,VBS版,JS版,WSH版<br/><br/>关键词：IIS日志清理,日志清理,IIS日志清理CMD版,IIS日志清理VBS版,IIS日志清理JS版,IIS日志清理WSH版<br/><br/>应用场合：主要用与虚拟主机，也可用于个人服务器&nbsp;&nbsp; <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;产生背景：2005 年某月某日，一向运行正常的虚拟主机死机了，让机房值班人员重启数次，都不成，接显示器进系统看，提示：C盘空间不足，半夜还得去机房处理，到机房后先断网，再进系统发现有两个地方有问题，C:&#92;WINDOWS&#92;system32&#92;LogFiles文件有6G，还有一个就是Symantec隔离病毒的地方，到网上找了下，最大可能性是我们的虚拟主机的所有日志都写在这里，并且没人知道写在这里，郁闷，在IIS里看了下，还真是这么回事，日志天天都在长，当时公司订单很多也没人关注这个，当时清理了一下，系统正常，回到公司后把IIS日志改到别的盘了。<br/><br/>解决方案：不过这不是最终解决方法呀，一个虚拟主机几百个站点呢，有的站点一天就能产生几百M的日志文件，还得及时清理。<br/><br/>与是有了两种解决方案：<br/>1.每天清理前60天的日志<br/>2.过段时间清理一下60天前的日志。<br/>不过哪种方法都得采用技术处理，人工去删除 的话除非你很专业，可以查找60天前的日志文件来删除，不过即便你技术很好，这种方法也是很费时的，最好的方法是：使用DOS批处理或脚本来实现，可使用到的脚本主要是vbs与js.<br/><br/>在下边的解决方案里有几种方法大家可以选择适合自己的，他们的总的设计思路是这样的：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IIS日志文件的格式是：ex年月日.log 比如：ex071116.log<br/>IIS日志文件存储位置：默认情况下是在：%windir%&#92;system32&#92;LogFiles ,如果您使用的是专业的IIS管理软件，里面一般会让你设置相应日志目录<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IIS日志清理CMD版：跟据当前时间计算出前N天的日期，比如今天是:2007-11-16,前60天的日期就是2007-9-16(程序可以自动识别30天或31天或润月),然后再处理成20070916这样的格式，然后再组合成ex070916.log这样的IIS日志文件格式，这样一来我们就得到的要清理的日志文件名然后，我们再使用del /s /f d:&#92;iislog&#92;ex070916.log 来清除日志所在文件夹目录及子目录下的所有这个文件名的文件了，从而清除志，但这个仅仅是清除一天的日志，所以我们还得把这个批处理加到计划任务里，让它每天定时执行，这样一来，所有的计算机的日志问题我们就可以不用管了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IIS日志清理VBS版：VBS版理论是没有iis版快，因为他还要借助脚本驱动，而不像cmd版直接使用dos系统的批处理功能快（猜的），VBS毕竟是高级语言，处理日期的能力用一句话就实现了，而CMD版得写半页。IIS日志清理VBS版的实现用VBS遍历IIS日志所在目录下的所有文件，及文件夹，然后取文件名组合成日期型的，然后当前日期-这个日期，看看是不是超过了设定的天数，超过的话delete,这种思路有个好处就是一次可以清除N天前的所有记录，而不是只是一天的，他可以你CMD版日志清理一样，把这个脚本写到计划任务里，天天运行，也可以过一段时间手动运行一次。这个代码明显比IIS日志清理CMD版少了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IIS日志清理JS版：这个版其实与IIS日志清理VBS版差不了多少，思路都是一样的，只是使用的脚本语言不一样而已，还有就是调用时的两个参数里的每一个参数：目录，这个目录得写成：D:&#92;&#92;iislog，以前都用vbs还当主要脚本，这次主要是要学C#了，听说这两种语言都差不多，正好也练习下，也没花多少时间。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IIS日志清理WSH版：WSH版其实是最简单的，因为他的集成化程度很高，操作过程是这样的：使用vbs或js生成要处理的文件的文件名，然后再使用WScript.Shell执行cmd命令来处理，利用了IIS日志清理CMD版及IIS日志清理VBS版的优点，这个也是一次只能处理一天的日志，当然您也可以把它改成处理多天的日志。正因为WSH集成化程度高，可以执行很多操作，所以黑客们都很喜欢这个，用的最多的也就是WScript.Shell，所以一般安全意识比较高的服务器提供商都会把这个组件给禁用掉，这样一来，这个最好用的功能就变成了最不能使用的，通用性最差的了。<br/>实例代码：<br/><br/>IIS日志清理CMD版代码(DelIISLog.cmd)：<br/><br/><div class="code">@echo off<br/>title Made by www.yongfa365.com<br/>::设置当前日期前多少天或后多少天<br/>set/a beforedays=-3<br/>::设置目录所在位置<br/>set&nbsp;&nbsp; dir=&quot;F:&#92;log&#92;&quot;<br/>::当前日期转换为天数并进行计算<br/>call :Date2Day %date:~0,10% days<br/>set/a days=%days%%beforedays%<br/>call :Day2Date %days% lastdate<br/>::计算完毕,生成想要的字符组合<br/>set okstr=ex%lastdate:~2,6%.log<br/>::删除这些文件<br/>del del /f /s /q %dir%&#92;%okstr%<br/><br/>cmd /k <br/><br/>:Date2Day<br/>setlocal ENABLEEXTENSIONS<br/>for /f &quot;tokens=1-3 delims=/-, &quot; %%a in (&#039;echo/%1&#039;) do (<br/>set yy=%%a &amp; set mm=%%b &amp; set dd=%%c<br/>)<br/>set /a dd=100%dd%%%100,mm=100%mm%%%100<br/>set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2<br/>set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633<br/>endlocal&amp;set %2=%j%&amp;goto :EOF <br/><br/>:Day2Date<br/>setlocal ENABLEEXTENSIONS<br/>set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a<br/>set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5<br/>set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10<br/>(if %mm% LSS 10 set mm=0%mm%)&amp;(if %dd% LSS 10 set dd=0%dd%)<br/>endlocal&amp;set %2=%yy%%mm%%dd%&amp;goto :EOF</div><br/><br/>IIS日志清理VBS版代码(DelIISLog.vbs)：<br/><br/><div class="code">&#039;IIS日志清理VBS版代码(DelIISLog.vbs)&nbsp;&nbsp;Made by www.yongfa365.com<br/>&#039;调用方法：DelIISLog &quot;IIS日志所在路径&quot;,保留多少天的IIS日志<br/>&#039;遍历IIS日志文件夹下的所有文件及子文件夹下的文件<br/>Function DelIISLog(IISLogPath,KeepDays)<br/>on error resume next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set oFso = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set oFolder = oFso.GetFolder(IISLogPath)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set oSubFolders = oFolder.SubFolders&nbsp;&nbsp;&#039;得到该目录下所有的文件夹的集合<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set oFiles = oFolder.Files &#039;得到该目录下所有的文件的集合<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;第一步处理当前目录下的所有文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;For Each oFile In oFiles &#039;遍历所有文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if right(oFile.name,3)=&quot;log&quot; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oDate=cdate(&quot;20&quot; &amp; mid(oFile.name,3,2) &amp; &quot;-&quot; &amp; mid(oFile.name,5,2) &amp; &quot;-&quot; &amp; mid(oFile.name,7,2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if date-oDate &gt; KeepDays then oFile.delete &#039;判断是不是要处理的IIS日志文件，如果是的话直接删除<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;第二步处理当前目录下的所有目录，进行递归调用<br/>&nbsp;&nbsp;&nbsp;&nbsp;For Each oSubFolder In oSubFolders<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelIISLog oSubFolder.Path,KeepDays &#039;递归<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>End Function<br/>DelIISLog &quot;D:&#92;IISLogTest&quot;,20 &#039;遍历</div><br/><br/>IIS日志清理JS版代码(DelIISLog.js)：<br/><br/><div class="code">//IIS日志清理JS版代码(DelIISLog.js)&nbsp;&nbsp;Made by www.yongfa365.com<br/>//调用方法：DelIISLog(&quot;IIS日志所在路径&quot;,保留多少天的IIS日志);<br/>//遍历IIS日志文件夹下的所有文件及子文件夹下的文件<br/>function DelIISLog(IISLogPath,KeepDays)&#123;<br/>&nbsp;&nbsp;var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>&nbsp;&nbsp;var f = fso.GetFolder(IISLogPath);<br/>&nbsp;&nbsp;var Folders = new Enumerator(f.SubFolders); //得到该目录下所有的文件夹的集合<br/>&nbsp;&nbsp;var Files = new Enumerator(f.Files); //得到该目录下所有的文件的集合<br/>&nbsp;&nbsp;//第一步处理当前目录下的所有文件<br/>&nbsp;&nbsp;for (; !Files.atEnd(); Files.moveNext()) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var fileName = Files.item().name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var year = &quot;20&quot; + fileName.substr(2, 2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var mouth = fileName.substr(4, 2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var day = fileName.substr(6, 2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var days = Math.round(((new Date()).getTime() - Date.UTC(year, mouth - 1, day)) / 1000 / 60 / 60 / 24);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (days &gt; KeepDays) Files.item().Delete(); //判断是不是要处理的IIS日志文件，如果是的话直接删除<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;//第二步处理当前目录下的所有目录，进行递归调用<br/>&nbsp;&nbsp;for (; !Folders.atEnd(); Folders.moveNext()) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DelIISLog(Folders.item(),KeepDays);<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/>//调用函数，比如：&quot;F:&#92;&#92;log&quot;,5&nbsp;&nbsp;或 &quot;C:&#92;&#92;windows&#92;&#92;system32&#92;&#92;LogFiles&quot;,5<br/>DelIISLog(&quot;D:&#92;&#92;IISLogTest&quot;,2);</div><br/><br/>IIS日志清理WSH版代码(DelIISLog.wsf)：<br/><br/><div class="code">&lt;job id=&quot;IIS日志清理WSH版代码(DelIISLog.wsf) Made by www.yongfa365.com&quot;&gt;<br/>&nbsp;&nbsp;&lt;script language=&quot;vbscript&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;作者：柳永法(yongfa365)&#039;Blog<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;修改：2007-11-15<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039;操作说明：此文件只能清除一天的日志，得使用计划任务让其每天执行一次，因为服务器上一般都禁用WScript.Shell,所以不推荐使用<br/>&nbsp;&nbsp;&nbsp;&nbsp;Function DelIISLog(IISLogPath,beforedays)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=Now-beforedays<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Right(IISLogPath,1) &lt;&gt; &quot;&#92;&quot; Then IISLogPath=IISLogPath &amp; &quot;&#92;&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p= IISLogPath &amp; &quot;ex&quot; &amp; Right(Year(d),2) &amp; Right(&quot;0&quot; &amp; Month(d),2)&nbsp;&nbsp;&amp; Right(&quot;0&quot; &amp; Day(d),2)&nbsp;&nbsp;&amp; &quot;.Log&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wscript.echo p<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WshShell.Run (&quot;cmd.exe /c del /s &quot; &amp; p)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set WshShell = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;DelIISLog &quot;D:&#92;IISLogTest&quot;,2<br/>&nbsp;&nbsp;&lt;/script&gt;<br/>&lt;/job&gt;</div><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有时我拿到别人的代码时我得写一堆东西来测试，现在这个如果让您去测试的话，您不会直接在服务器上测试吧，所以，以下再贴出本人柳永法的测试脚本，主要是在D盘生成一个测试文件夹，及一些IIS测试日志文件，<br/><br/>IIS日志清理之IIS日志生成系统(CreateIISLog.vbs)：<br/><br/><div class="code">&#039;IIS日志清理之IIS日志生成系统(CreateIISLog.vbs)&nbsp;&nbsp;Made by www.yongfa365.com<br/>&#039;创建文件夹<br/>Function CreateFolder(Folder)<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;FSO.CreateFolder(Folder)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateFolder = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateFolder = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/>&#039;创建文件<br/>Function CreateFile(FileName, Content)<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set fd = FSO.CreateTextFile(FileName, True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;fd.WriteLine Content<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CreateFile = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>CreateFolder &quot;D:&#92;IISLogTest&quot;<br/>CreateFolder &quot;D:&#92;IISLogTest&#92;IISLogs001&quot;<br/>CreateFolder &quot;D:&#92;IISLogTest&#92;IISLogs002&quot;<br/>CreateFolder &quot;D:&#92;IISLogTest&#92;IISLogs003&quot;<br/>for i=1 to 30<br/>&nbsp;&nbsp;d=date-i<br/>&nbsp;&nbsp;filename=&quot;ex&quot; &amp; right(year(d),2) &amp; right(&quot;0&quot; &amp; month(d),2) &amp; right(&quot;0&quot; &amp; day(d),2) &amp; &quot;.log&quot;<br/>&nbsp;&nbsp;CreateFile &quot;D:&#92;IISLogTest&#92;&quot; &amp; filename,Content<br/>&nbsp;&nbsp;CreateFile &quot;D:&#92;IISLogTest&#92;IISLogs001&#92;&quot; &amp; filename,Content<br/>&nbsp;&nbsp;CreateFile &quot;D:&#92;IISLogTest&#92;IISLogs002&#92;&quot; &amp; filename,Content<br/>&nbsp;&nbsp;CreateFile &quot;D:&#92;IISLogTest&#92;IISLogs003&#92;&quot; &amp; filename,Content</div><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;后记：这个方法不仅可以用在IIS日志处理方面，还可以用在处理Serv-U的日志处理，前提条件是Serv-U的日志文件的格式也得设成像IIS日志这样的格式ex071115.log。 <br/>Tags - <a href="http://selboo.com.cn/tags/iis/" rel="tag">iis</a> , <a href="http://selboo.com.cn/tags/%25E6%2597%25A5%25E5%25BF%2597/" rel="tag">日志</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/420/</link>
<title><![CDATA[ASP实现404错误时自动发邮件管理员]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 02 Mar 2009 05:03:31 +0000</pubDate> 
<guid>http://selboo.com.cn/post/420/</guid> 
<description>
<![CDATA[ 
	from:http://429006.com/article/Technology/1461.htm<br/><br/>实现的效果：<br/>当访问出现404错误提示信息的时候系统会自动发一封邮件给管理员，这样就不必担心了也有不能访问的死链接了<br/><br/>把下面的带嵌入到404页面之后，设置好中间的帐号和密码。<br/><br/>代码如下：<br/><br/><div class="code">&lt;%@language=&quot;vbscript&quot; %&gt; <br/>&lt;%Option Explicit %&gt; <br/>&lt;% <br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim strPage, strReferer, strMessage <br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim objSMTP <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039; Log the offending page <br/>&nbsp;&nbsp;&nbsp;&nbsp;strPage = Request.ServerVariables(&quot;HTTP_URL&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039; Log the referer <br/>&nbsp;&nbsp;&nbsp;&nbsp;strReferer = Request.ServerVariables(&quot;HTTP_REFERER&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039; Set up the email component <br/>&nbsp;&nbsp;&nbsp;&nbsp;Set objSMTP = Server.CreateObject(&quot;JMail.Message&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.From = &quot;you@yourdomain.com&quot; <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.FromName = &quot;Your Domain&quot; <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.Subject = &quot;404 Error Logged&quot; <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.AddRecipient(&quot;you@yourdomain.com&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039; Write the message <br/>&nbsp;&nbsp;&nbsp;&nbsp;strMessage = &quot;Requested page: &quot; &amp; strPage &amp; vbCrLf &amp; vbCrLf <br/>&nbsp;&nbsp;&nbsp;&nbsp;If strReferer &lt;&gt; &quot;&quot; Then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage = strMessage &amp; &quot;Referer: &quot; &amp; strReferer <br/>&nbsp;&nbsp;&nbsp;&nbsp;Else <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage = strMessage &quot;The visitor typed the address in&quot; <br/>&nbsp;&nbsp;&nbsp;&nbsp;End If <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.Body = strMessage <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039; Send the message <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.Send(&quot;mail.163.com&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&#039; Tidy up <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.ClearRecipients <br/>&nbsp;&nbsp;&nbsp;&nbsp;objSMTP.Close() <br/>&nbsp;&nbsp;&nbsp;&nbsp;Set objSMTP = Nothing <br/>%&gt; </div><br/>Tags - <a href="http://selboo.com.cn/tags/asp/" rel="tag">asp</a> , <a href="http://selboo.com.cn/tags/404/" rel="tag">404</a> , <a href="http://selboo.com.cn/tags/%25E9%2582%25AE%25E4%25BB%25B6/" rel="tag">邮件</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/404/</link>
<title><![CDATA[搭建自己的云计算平台 ]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Mon, 16 Feb 2009 12:29:10 +0000</pubDate> 
<guid>http://selboo.com.cn/post/404/</guid> 
<description>
<![CDATA[ 
	如果你的服务器很多，或者你的钱多了烧，可以考虑搭建自己的云计算平台。下面是一些开源的云计算框架和工具<br/><br/>&nbsp;&nbsp;1. Enomalism (http://www.enomaly.com/) 云计算平台。Enomalism 是一个开放源代码项目，它提供了一个功能类似于 EC2 的云计算框架。Enomalism 基于 Linux，同时支持 Xen 和 Kernel Virtual Machine(KVM)。Enomalism 提供了一个基于 TurboGears Web 应用程序框架和 Python 的软件栈。<br/><br/>&nbsp;&nbsp;2. Euclyptus (http://eucalyptus.cs.ucsb.edu/) 项目(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是 Amazon EC2 的一个开源实现，它与商业服务接口兼容。和 EC2 一样，Eucalyptus 依赖于 Linux 和 Xen 进行操作系统虚拟化。Eucalyptus 是加利福尼亚大学(Santa Barbara)为进行云计算研究而开发的。您可以从该大学的网站上下载它，或者通过 Eucalyptus Public Cloud 体验它，不过后者有一些限制。<br/><br/>&nbsp;&nbsp;3. AppDrop (http://appdrop.com/) Google App Engine (GAE) 的开放源码克隆版， 提供与GAE同样的接口。这意着你可以在Euclyptus上提供类似GAE的服务。 （网站已失效）<br/><br/>&nbsp;&nbsp;4. 10Gen (http://www.10gen.com/) 它既是一个云平台，又是一个可下载的开放源代码包，可用于创建您自己的私有云。10gen 是类似于 App Engine 的一个软件栈，它提供与 App Engine 类似的功能 — 但有一些不同之处。通过 10gen，可以使用 Python 以及 JavaScript. 和 Ruby 编程语言开发应用程序。该平台还使用沙盒概念隔离应用程序，并且使用它们自己的应用服务器的许多计算机(当然，是在 Linux 上构建)提供一个可靠的环境。<br/><br/>5. NimBus (http://workspace.globus.org/) 呵呵，网格中间件Globus的作品，从最早的Virtual Workspace演化而来， http://workspace.globus.org/index.html ，提供与EC2类似的功能和接口<br/><br/>Tags - <a href="http://selboo.com.cn/tags/%25E4%25BA%2591%25E8%25AE%25A1%25E7%25AE%2597/" rel="tag">云计算</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/401/</link>
<title><![CDATA[查询任意QQ空间的歌曲地址]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Sat, 14 Feb 2009 06:21:04 +0000</pubDate> 
<guid>http://selboo.com.cn/post/401/</guid> 
<description>
<![CDATA[ 
	打开IE输入下面地址<br/><br/><a href="http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=8062921" target="_blank">http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=<span style="color: #FF0000;">8062921</span></a><br/><br/>红色换成你想要查看的QQ号码<br/><br/>Ctrl+F 查找"<![CDATA[ http"字段 得到下面的地址<br/><br/>http<span style="color: #0000FF;">&#</span>58<span style="color: #0000FF;">;</span>//music5<span style="color: #0000FF;">&#</span>46<span style="color: #0000FF;">;</span>tool<span style="color: #0000FF;">&#</span>46<span style="color: #0000FF;">;</span>hexun<span style="color: #0000FF;">&#</span>46<span style="color: #0000FF;">;</span>com/Save/Music/2008/0617/6238/M<span style="color: #0000FF;">&#</span>95<span style="color: #0000FF;">;</span>C2EE83AEFC84AF0E<span style="color: #0000FF;">&#</span>46<span style="color: #0000FF;">;</span>WMA<br/><br/>注意蓝色 <span style="color: #0000FF;">&#</span>58<span style="color: #0000FF;">;</span> 中间的数字 58 是ascii 转换后为":"<br/><br/>转换地址 <a href="http://www.weste.net/tools/ASCII.asp" target="_blank">http://www.weste.net/tools/ASCII.asp</a> 输入相应的数字即可<br/><br/>得到了真实的地址 http://music5.tool.hexun.com/Save/Music/2008/0617/6238/M_C2EE83AEFC84AF0E.WMA<br/><br/>上面是过程如果嫌麻烦,可以用下面的方法直接查看<br/><br/><a href="http://www.dofeed.cn/music/" target="_blank">http://www.dofeed.cn/music/</a><br/>Tags - <a href="http://selboo.com.cn/tags/qq%25E7%25A9%25BA%25E9%2597%25B4/" rel="tag">qq空间</a> , <a href="http://selboo.com.cn/tags/qq/" rel="tag">qq</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/383/</link>
<title><![CDATA[解决php和mysql中出现的乱码]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Fri, 02 Jan 2009 09:02:53 +0000</pubDate> 
<guid>http://selboo.com.cn/post/383/</guid> 
<description>
<![CDATA[ 
	<br/>1.mysql数据库<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不知道为什么刚开始感觉字符集出现了问题，phpadmin中也出现乱码，说明字符集出席那问题了但我在phpmyadmin中把字段的字符集改成了utf8，但还是显示乱码，但在phpmyadmin中显示正常，说明数据库应该没问题。<br/><br/>2.php<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可能pager_wrapper_mdb2出现问题了，想到$mdb2->query("set names utf8")，师兄给我的例子是db的把db改成mdb2就行了，但还是出问题，捣鼓了好长时间也没捣鼓出来，网上搜了下有个方法是把数据库全删了，只有这样做了，在创建数据库的时候就选utf8_bin，好像是因为继承的问题，反正问题是解决了，有的可以告诉我<br/><br/>3.浏览器<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我发现一个问题，浏览器中看到的是乱码，但看了下原代吗，没问题，说明浏览器的字符集不对，好像加一条header("content-type:text/html; charset=utf8")能把这个问题解决<br/><br/><br/><br/>Tags - <a href="http://selboo.com.cn/tags/php/" rel="tag">php</a> , <a href="http://selboo.com.cn/tags/mysql/" rel="tag">mysql</a> , <a href="http://selboo.com.cn/tags/%25E8%25A7%25A3%25E5%2586%25B3/" rel="tag">解决</a> , <a href="http://selboo.com.cn/tags/%25E4%25B9%25B1%25E7%25A0%2581/" rel="tag">乱码</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/378/</link>
<title><![CDATA[让IIS支持wap ]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Wed, 24 Dec 2008 13:51:45 +0000</pubDate> 
<guid>http://selboo.com.cn/post/378/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果你想让你的IIS支持wml,做个wap网站,只需作小小的改变就行了.虽然目前支持wml的虚拟主机极少,但是自己在本机上玩玩也好的.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先在打开IIS,然后在默认网站的属性--HTTP头--MMIE映射--文件类型--添加注册文件的类型:<br/> <br/>Associated Extension&nbsp;&nbsp;MIME Type <br/>wml&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text/vnd.wap.wml <br/>wmlc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application/vnd.wap.wmlc <br/>wbmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image/vnd.wap.wbmp <br/>wmlsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application/vnd.wap.wmlscriptc <br/>wmls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text/vnd.wap.wmlscript <br/>wsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application/vnd.wap/wmlscriptc <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在你就可以在你的站点添加wml文件了.可以用手机模拟器来浏览,或者opera浏览器浏览.如果你的主机是对外发布的,那你就可以用手机来浏览你的网站了.<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果是用ASP生成wml,必须包含这句:<% Response.ContentType="text/vnd.wap.wml" %><br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例如这个例子:test.asp <br/><br/><div class="code">&lt;%@ Language=VBScript %&gt;<br/>&lt;% Response.ContentType=&quot;text/vnd.wap.wml&quot; %&gt;<br/>&lt;?xml version=&quot;1.0&quot;?&gt;<br/>&lt;!DOCTYPE wml PUBLIC &quot;-//WAPFORUM//DTD WML 1.1//EN&quot; &quot;http://www.wapforum.org/DTD/wml_1.1.xml&quot;&gt;<br/>&lt;wml&gt;<br/>&lt;card id=&quot;main&quot;&gt;<br/>&lt;p&gt;<br/>Just A test on my wap site!<br/>&lt;/p&gt;<br/>&lt;/card&gt;<br/>&lt;/wml&gt;</div><br/>Tags - <a href="http://selboo.com.cn/tags/iis/" rel="tag">iis</a> , <a href="http://selboo.com.cn/tags/wap/" rel="tag">wap</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/360/</link>
<title><![CDATA[HTTP 状态代码]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Wed, 03 Dec 2008 14:35:50 +0000</pubDate> 
<guid>http://selboo.com.cn/post/360/</guid> 
<description>
<![CDATA[ 
	原文英文 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" target="_blank">http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html</a><br/><br/>如果某项请求发送到您的服务器要求显示您网站上的某个网页（例如，用户通过浏览器访问您的网页或 Googlebot 抓取网页时），服务器将会返回 HTTP 状态代码以响应请求。<br/><br/>此状态代码提供关于请求状态的信息， 告诉 Googlebot 关于您的网站和请求的网页的信息。<br/><br/>一些常见的状态代码包括：<br/><br/>200 - 服务器成功返回网页 <br/>404 - 请求的网页不存在 <br/>503 - 服务器暂时不可用 <br/>下面提供 HTTP 状态代码的完整列表。 点击链接可了解详情。 您也可以访问有关 HTTP 状态代码的 W3C 网页以获得更多信息。<br/><br/>1xx（临时响应）<br/>表示临时响应并需要请求者继续执行操作的状态代码。<br/><br/>代码 说明 <br/>100（继续） 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分，正在等待其余部分。 <br/>101（切换协议） 请求者已要求服务器切换协议，服务器已确认并准备切换。 <br/><br/>2xx（成功）<br/><br/>表示服务器成功处理了请求的状态代码。<br/><br/>代码 说明 <br/>200（成功） 服务器已成功处理了请求。 通常，这表示服务器提供了请求的网页。 如果针对您的 robots.txt 文件显示此状态，则表示 Googlebot 已成功检索到该文件。 <br/>201（已创建） 请求成功并且服务器创建了新的资源。 <br/>202（已接受） 服务器已接受请求，但尚未处理。 <br/>203（非授权信息） 服务器已成功处理了请求，但返回的信息可能来自另一来源。 <br/>204（无内容） 服务器成功处理了请求，但没有返回任何内容。 <br/>205（重置内容） 服务器成功处理了请求，但没有返回任何内容。 与 204 响应不同，此响应要求请求者重置文档视图（例如，清除表单内容以输入新内容）。 <br/>206（部分内容） 服务器成功处理了部分 GET 请求。 <br/><br/>3xx（重定向）<br/>要完成请求，需要进一步操作。 通常，这些状态代码用来重定向。 Google 建议您在每次请求中使用重定向不要超过 5 次。 您可以使用网站管理员工具查看一下 Googlebot 在抓取重定向网页时是否遇到问题。 诊断下的网络抓取页面列出了由于重定向错误而导致 Googlebot 无法抓取的网址。<br/><br/>代码 说明 <br/>300（多种选择） 针对请求，服务器可执行多种操作。 服务器可根据请求者（用户代理）选择一项操作，或提供操作列表供请求者选择。 <br/>301（永久移动） 请求的网页已永久移动到新位置。 服务器返回此响应（对 GET 或 HEAD 请求的响应）时，会自动将请求者转到新位置。 您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置。 <br/>302（暂时移动） 服 务器目前从不同位置的网页响应请求，但请求者应继续使用原有位置来进行以后的请求。 此代码与响应 GET 或 HEAD 请求的 301 代码类似，会自动将请求者转到不同的位置，但您不应使用此代码来告诉 Googlebot 某个网页或网站已经移动，因为 Googlebot 会继续抓取原有位置并编入索引。 <br/>303（查看其他位置） 请求者应当对不同的位置使用单独的 GET 请求来检索响应时，服务器返回此代码。 对于除 HEAD 之外的所有请求，服务器会自动转到其他位置。 <br/>304（未修改） 自从上次请求后，请求的网页未修改过。 服务器返回此响应时，不会返回网页内容。<br/><br/>如果网页自请求者上次请求后再也没有更改过，您应当将服务器配置为返回此响应（称为 If-Modified-Since HTTP 标头）。 由于服务器可以告诉 Googlebot 自从上次抓取后网页没有更改过，因此可节省带宽和开销<br/><br/>305（使用代理） 请求者只能使用代理访问请求的网页。 如果服务器返回此响应，还表示请求者应使用代理。 <br/>307（暂时重定向） 服 务器目前从不同位置的网页响应请求，但请求者应继续使用原有位置来进行以后的请求。 此代码与响应 GET 和 HEAD 请求的 301 代码类似，会自动将请求者转到不同的位置，但您不应使用此代码来告诉 Googlebot 某个页面或网站已经移动，因为 Googlebot 会继续抓取原有位置并编入索引。 <br/><br/>4xx（请求错误）<br/>这些状态代码表示请求可能出错，妨碍了服务器的处理。<br/><br/>代码 说明 <br/>400（错误请求） 服务器不理解请求的语法。 <br/>401（未授权） 请求要求身份验证。 对于需要登录的网页，服务器可能返回此响应。 <br/>403（禁止） 服务器拒绝请求。 如果您看到 Googlebot 在尝试抓取您网站上的有效网页时收到此状态代码（可以在 Google 网站管理员工具诊断下的网络抓取页面上看到此信息），可能是您的服务器或主机拒绝 Googlebot 访问。 <br/>404（未找到） 服务器找不到请求的网页。 例如，如果请求服务器上不存在的网页，服务器通常会返回此代码。<br/><br/>如果您的网站上没有 robots.txt 文件，而您在 Google 网站管理员工具”诊断”标签的 robots.txt 页上看到此状态，那么这是正确的状态。 但是，如果您有 robots.txt 文件而又看到此状态，则说明您的 robots.txt 文件可能命名错误或位于错误的位置 （该文件应当位于顶级域名，名为 robots.txt）。<br/><br/>如果您看到有关 Googlebot 尝试抓取的网址的此状态（在”诊断”标签的 HTTP 错误页上），则表示 Googlebot 追踪的可能是另一个页面的无效链接（是旧链接或输入有误的链接）。<br/> <br/>405（禁用的方法） 禁用请求中指定的方法。 <br/>406（不可接受） 无法使用请求的内容特性响应请求的网页。 <br/>407（需要代理授权） 此状态代码与 401（未授权）类似，但指定请求者应当授权使用代理。 如果服务器返回此响应，还会指明请求者应当使用的代理。 <br/>408（请求超时） 服务器等候请求时发生超时。 <br/>409（冲突） 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码，同时会附上两个请求的差异列表。 <br/>410（已删除） 如果请求的资源已永久删除，服务器就会返回此响应。 该代码与 404（未找到）代码相似，但在资源以前存在而现在不存在的情况下，有时会用来替代 404 代码。 如果资源已永久删除，您应当使用 301 指定资源的新位置。 <br/>411（需要有效长度） 服务器不接受不含有效内容长度标头字段的请求。 <br/>412（未满足前提条件） 服务器未满足请求者在请求中设置的其中一个前提条件。 <br/>413（请求实体过大） 服务器无法处理请求，因为请求实体过大，超出服务器的处理能力。 <br/>414（请求的 URI 过长） 请求的 URI（通常为网址）过长，服务器无法处理。 <br/>415（不支持的媒体类型） 请求的格式不受请求页面的支持。 <br/>416（请求范围不符合要求） 如果页面无法提供请求的范围，则服务器会返回此状态代码。 <br/>417（未满足期望要求） 服务器未满足”期望”请求标头字段的要求。 <br/><br/>5xx（服务器错误）<br/>这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误，而不是请求出错。<br/><br/>代码 说明 <br/>500（服务器内部错误） 服务器遇到错误，无法完成请求。 <br/>501（尚未实施） 服务器不具备完成请求的功能。 例如，服务器无法识别请求方法时可能会返回此代码。 <br/>502（错误网关） 服务器充当网关或代理，从上游服务器收到无效响应。 <br/>503（服务不可用） 服务器目前无法使用（由于超载或停机维护）。 通常，这只是暂时状态。 <br/>504（网关超时） 服务器充当网关或代理，但没有及时从上游服务器收到请求。 <br/>505（HTTP 版本不受支持） 服务器不支持请求中所用的 HTTP 协议版本。 <br/><br/>Tags - <a href="http://selboo.com.cn/tags/http/" rel="tag">http</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/347/</link>
<title><![CDATA[交换机工作原理]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Sat, 22 Nov 2008 17:05:58 +0000</pubDate> 
<guid>http://selboo.com.cn/post/347/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们都已经知道交换机是依靠学习MAC地址来进行数据转发的,那么交换机是怎么学习MAC地址的呢？首先我们要知道MAC地址存在MAC表中的；一台交换机开机后它的MAC地址表是空空的.当交换机学到一个MAC地址后,它会将MAC地址存放到MAC表中(也称内容可寻址存贮器CAM),并且会给其打上时间标记timestamp.(注:时间标记有什么功能呢？？它有两个功能<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)当一台PC机已经切换交换机端口的时候,MAC地址表内会同是检测到一台交换机中会有两个一样的MAC地址,那么它就会删除利用时间标记记录最老的MAC地址；<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)当MAC地址表过于庞大的时候,交换机会利用时间标记来删除已经在一段时间内没有链接到该端口的、与MAC地址表中相对应的PC机的MAC地址.)我们来举一个例子：假设我们现在有一个交换式的网络,我们要将PC1中的数据发送到PC2上.如图1<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=100" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=100" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图1<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们从图1中可以看到4台带有MAC地址的PC机分别连接在交换机的每个端口上,当交换机和开机后交换机中的MAC地址表为空；此时当PC1发送一个信号给交换机,当数据帧到达交换机后交换机做的第一步就是在MAC表中记录发送端的源MAC地址以及它所连接到此交换机端口的端口号,此时交换机会发现在MAC地址表中只有一个MAC地址,所以它并不知道我要发给那台PC机,然后交换机会向全网发送广播以便让所有的连接到这台交换机的设备都可以接收到此数据帧；如图2.图3<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=101" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=101" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图2<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=102" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=102" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图3<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先我们先看一下PC3接收到此数据帧后他会将此数据帧的目的MAC地址表与NIC(网卡)中的MAC地址进行核对,如果一样则接纳此数据帧,如果不一样则丢弃；很显然是不一样的,那么PC3就丢弃此数据帧.如图4同样图5中的数据帧也是一样的.<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=103" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=103" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图4<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=104" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=104" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图5<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=105" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=105" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图6<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从图6中我们可以看到PC3与PC4将此数据帧丢弃了.就在交换机广播此数据帧的同时,PC2也接到了这个数据帧并且和其它的设备一样用NIC中的MAC地址与该数据帧的MAC地址进行比较,如图7<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=106" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=106" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图7<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如同题目一样PC2的MAC正好与此数据帧的目的MAC地址对应,那么此时PC2给与交换机回应,并且在交换机的MAC地址表中填写与之对应的MAC地址和端口号.如图8<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=107" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=107" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图8<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后交换机再向PC1发送PC2的MAC地址信息,以便向pc1中写入由交换机发送的PC2的源MAC地址.如图9<br/><br/><a href="http://selboo.com.cn/attachment.php?fid=108" target="_blank"><img src="http://selboo.com.cn/attachment.php?fid=108" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>图9<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上就是一个典型的交换机学习MAC地址的整个过程.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;想必大家都看到了在MAC地址表中的每个端口只与一个MAC地址对应,在以后的文章中我们还会看到MAC地址表中的一个端口对应多个MAC地址的现象.<br/>Tags - <a href="http://selboo.com.cn/tags/%25E4%25BA%25A4%25E6%258D%25A2/" rel="tag">交换</a> , <a href="http://selboo.com.cn/tags/%25E7%25BD%2591%25E7%25BB%259C/" rel="tag">网络</a> , <a href="http://selboo.com.cn/tags/%25E5%25B7%25A5%25E4%25BD%259C%25E5%258E%259F%25E7%2590%2586/" rel="tag">工作原理</a>
]]>
</description>
</item><item>
<link>http://selboo.com.cn/post/338/</link>
<title><![CDATA[cmd下dos命令下建立vpn]]></title> 
<author>selboo &lt;root@selboo.com.cn&gt;</author>
<category><![CDATA[网络技术]]></category>
<pubDate>Sat, 15 Nov 2008 07:25:30 +0000</pubDate> 
<guid>http://selboo.com.cn/post/338/</guid> 
<description>
<![CDATA[ 
	服务里 windows防火墙停止（或者麻烦点可以把router协议，端口1723配进去）<br/>远程注册表服务必须开启<br/>server服务必须开启<br/>router路由服务必须开启<br/><br/>两块以上网卡的win2000做vpn很方便，添加nat协议后，客户端拨入，能够使用远程网络连接internet。 使得部分客户端可提高网络速度，并达到代理的作用。<br/><br/>一块网卡的winxp，win2003做类似的vpn仍然很方便，nat协议添加后，再添加两个接口，一个是本地连接，一个是内部，设置本地连接为全转发，内部为私有模式，既可让有权限的用户拨入。<br/><br/>一块网卡的win2000，做类似的vpn就不方便了，nat协议添加后，再添加接口，只可以添加上本地连接，内部不容许图形界面的添加，察看了netsh dump >c:&#92;1.txt后，尝试在netsh命令添加内部接口，通过。 命令为：netsh routing ip nat add interface 内部 private<br/><br/>下面是部分常用命令：<br/><br/>netsh ras set user username permit //设置用户授权，该用户不能为tsinternetuser support_388945a0等。<br/><br/>netsh ras ip set addrassign pool //设置静态地址池模式<br/><br/>netsh ras ip add range 10.0.0.1 10.0.0.100 // 设置静态池范围 ，要用标准的局域网地址，避免将来在访问internet时候地址转发错误。<br/><br/>netsh routing ip nat install //添加nat协议<br/><br/>netsh routing ip nat add interface 本地连接 full //添加nat接口本地连接全转发<br/><br/>netsh routing ip nat add interface 内部 private //添加nat借口内部私有模式<br/><br/>igmp同样可以在netsh配置，命令行很长：<br/><br/>netsh routing ip igmp install<br/><br/>netsh routing ip igmp add interface 内部 igmpprototype=IGMPRTRV2 ifenabled=enable robustvar=2 startupquerycount=2 startupqueryinterval=31 genqueryinterval=125 genqueryresptime=10 lastmemquerycount=2 lastmemqueryinterval=1000 accnonrtralertpkts=YES<br/><br/>netsh routing ip igmp add interface name="本地连接" igmpprototype=IGMPPROXY ifenabled=enable<br/>如果配置前已经有接口，就要先删除：<br/><br/>netsh routing ip igmp delete interface 内部 //与此类似<br/><br/>路由和远程访问服务会在系统、安全日记中记录不少信息，比如ipsec、登陆信息。<br/><br/>修改一下注册表可以避免：<br/><br/>HKEY_LOCAL_MACHINE&#92;SYSTEM&#92;CurrentControlSet&#92;Services&#92;RasMan&#92;Parameters<br/><br/>ProhibitIPsec"=dword:00000001<br/><br/>HKEY_LOCAL_MACHINE&#92;SYSTEM&#92;CurrentControlSet&#92;Services&#92;RemoteAccess&#92;Parameters<br/><br/>LoggingFlags"=dword:00000000<br/><br/>现在除了登陆信息，ipsec,remoteaccess警告，已经不记录。<br/><br/>----------------------------------------<br/><br/>还有值得一提的是建立好地vpn，通常使用的都是pptp协议，tcp1723端口，如果我们在网卡的ip策略添加了tcp1723的容许条目，基本上可以拨入。为什么是基本呢，因为pptp除了 tcp1723外还有一个ip47号协议，不同于tcp不同于udp，此协议对于认证很重要。如果网络上的防火墙割断的话，会出现拨号->用户认证 ->不通过认证断开的问题。<br/><br/>在配置vpn的时候，还需要remoteregister服务的支持，建立好以后可以关掉。<br/><br/>workstation , server,rpc同样在配置时候需要。<br/><br/>----------------------------------------<br/><br/>经测试，全命令行的建立vpn后，rrasmgmt.msc不出现具体配置信息。也就是说只有看网络连接文件夹，才能看出来一个拨入的连接。貌似隐蔽，比较见鬼。<br/>Tags - <a href="http://selboo.com.cn/tags/cmd/" rel="tag">cmd</a> , <a href="http://selboo.com.cn/tags/dos/" rel="tag">dos</a> , <a href="http://selboo.com.cn/tags/vpn/" rel="tag">vpn</a>
]]>
</description>
</item>
</channel>
</rss>