<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>随风随行のland</title>
		<link>http://landon.v70.us//</link>
		<description>往事依依，随风而行。淡忘过去的一切，在风中迎接新的希望。</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Sun, 05 Sep 2010 11:37:57 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://landon.v70.us//show-128-1.html</guid>
			<title>唉，完了干了件錯事</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>修改 access-list<br />
想去掉一條規則</p>
<p>直接 no access-list了。。。靠 整個list都空了，</p>
<p>然后輸入2條后 發現丟失鏈接。</p>
<p>我居然在 access-list 101 寫上了 deny any any</p>
<p>access-list 看來有必要從新看一下了</p>
<p>&nbsp;</p>
<p>好吧先說下 acl 列表的修改方法吧</p>
<p>1。請記住 acl 最后一句是 deny any any 隱藏的</p>
<p>cisco這個牲口不提供 插入和刪除 要想修改只能從新做&nbsp;</p>
<p>除非你做的事允許列表</p>
<p>acl和iptables一樣 由上倒下訪問。</p>
<p>&nbsp;</p>
<p>修改方法1</p>
<p>tftp方法 但是很麻煩。</p>
<p>2</p>
<p>先去if 里面no掉 access-group</p>
<p>然后 sh run</p>
<p>把acl 復制到記事本</p>
<p>然后 no access-list XX</p>
<p>然后編輯好記事本中的acl列表 copy到ciaco中</p>
<p>在到if中把 access-group 加上。</p>]]></description>
			<link>http://landon.v70.us//show-128-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-08-16 11:33</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-127-1.html</guid>
			<title>gfw與ddos</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>最近1984被中国ddos，然后就是封ip。<br />
到底gfw會不會屏蔽ddos呢？<br />
這個話題一會我們談一下。<br />
首先先說下 gfw的屏蔽的2中方式<br />
1.就是平時所看見的鏈接重置，這個發生在互聯網關口上。<br />
2.ip封鎖，其實這個不是gfw做的，而是各個省級核心路由器做的。<br />
<br />
那么ddos是什么呢？<br />
我先copy下。。。文章沒找到。。<br />
簡單的說下吧，現在基本的攻擊方式都是 syn flood，制造海量syn數據包 去制造空連接，讓服務器消耗端口，因為空連接會有30s的等待時間導致端口不能用，所以讓正常的鏈接無法建立。<br />
syn flood 中原ip都是偽造的 是不存在的，當服務器收到這些數據包也會發送一個回應數據包，這樣就造成了2倍的流量（1倍對于服務器是下行的，就是ddos者發送的數據包，另外1倍就是服務器回饋的流量。）這樣網絡帶寬直接被消耗干凈了。<br />
一般1m的adsl可以產生大概500kbits/s的ddos 流量， 100臺就是50mbits的流量。 很輕松就能讓一臺服務器帶寬耗盡。<br />
<br />
結論：<br />
1。ddos不會產生tcp鏈接，他的目的是利用tcp三次握手的漏洞。<br />
2.源ip是偽造的，只要發送者能夠把這個數據包發送到服務器那么ddos就可以進行。<br />
<br />
<br />
好了那就說下gfw的2種情況吧<br />
先說1吧。<br />
鏈接重置是建立在 穩定的tcp連接上，gfw審核的tcp鏈接發送的內容，如果tcp鏈接都沒法成功建立可以說gfw是無法屏蔽的。<br />
所以即使有關鍵字被屏蔽的情況下是可以在國內發起ddos的。<br />
ps 墻不是路由是一個監聽設備類似ids。<br />
<br />
2.這種情況 是路由器處理的 ，因為路由器直接參與數據包轉發 所有目的ip為被封鎖ip 直接跳轉到 null0 （cisco邏輯端口 丟棄數據包不產生任何回復。）<br />
所有此種情況在國內無法發動ddos攻擊， 其實ip被封了 也是好事 哈哈<br />
<br />
ps 了解路由封鎖可以看下我以前寫的文章&nbsp; 【实验】基于路由协议的的ip封锁<br />
http://landon.v70.us/show-113-1.html</p>]]></description>
			<link>http://landon.v70.us//show-127-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-08-14 02:30</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-124-1.html</guid>
			<title>3级魔方的表示法</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>好吧，魔方算法目前看源码没研究出来原理，我先讲解下魔法的表示法吧。</p>
<p>目前用的最多的表示法是 Mike Reid创造出来的 ，他用 4+4+4 表示12个边 ，然后4+4表示8个角 。刨去了6个中心。 之未央 12&times;2+8&times;3+6 正好是54。</p>
<p>这样 只用了 一行就可以表示出魔方的样子了。</p>
<p>UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR</p>
<p>代表的是一个拼好的魔方。</p>
<p>下面是字母的含义</p>
<p>U: Up<br />
F: Front<br />
R: Right<br />
L: Left<br />
D: Down<br />
B: Back</p>
<p>其实字幕的含义不光是方向 也代表颜色。</p>
<p>默认的算法是用</p>
<p>u=yellow</p>
<p>f=blue</p>
<p>r=red</p>
<p>其他的自己看吧 我手头没魔方。</p>
<p>顺序如下&nbsp; 显示最上层的edge&nbsp; 以蓝色面和黄色面交界处为1 顺时针</p>
<p>然后是底面。同样&nbsp; 以蓝色和地面颜色为1顺时针</p>
<p>最后是中间那一层 以蓝色和红色为1</p>
<p>之后是角 黄红蓝为1</p>
<p>红蓝和地面颜色为1</p>
<p>&nbsp;</p>
<p>看图吧</p>
<p><a href="http://landon.v70.us//attachment.php?id=91" target="_blank"><img src="http://landon.v70.us//attachments//date_201008/34f4d40f942d2606c9bc44635cdf2231.jpg" border="0" alt="大小: 16.19 K&#13;尺寸: 335 x 319&#13;浏览: 0 次&#13;点击打开新窗口浏览全图" width="335" height="319" /></a></p>
<p>在剽窃一张别人的图</p>
<p>http://www.diy-robots.com/wp-content/uploads/2010/01/Rubik.gif</p>]]></description>
			<link>http://landon.v70.us//show-124-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-08-04 08:14</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-122-1.html</guid>
			<title>uc的协议</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>其实我不打算发这篇文章了，听很多友友说uc的协议加密了。<br />
那么这篇文章也没有意义了。</p>
<p>uc6.2的协议。好像java也用的是这个协议。</p>
<p>uc返回数据包用的是gz格式。</p>
<p>返回的数据包先找74 72 75 65 ff 记录下指针 为a</p>
<p>然后找 1f 18 纪录指针为b</p>
<p>b must &gt; a</p>
<p>如果b小于a 继续找～</p>
<p>从b开始读到结尾-4 把这些内容 用gz解压就可以得到 uc格式的网页了。</p>
<p>很多懒得分析了</p>
<p>00 00 39 后面是对应的url&nbsp; /01 00 15结束</p>
<p>01 00 15 是你uc的id号 前面有文章说过这个id&nbsp; 这个id 对于在服务器存储cookies的id。</p>
<p>&nbsp;</p>
<p>请求url 头部报文：</p>
<p>
<div class="codeText">
<div class="codeHead">Java代码</div>
<ol start="1" class="dp-j">
    <li class="alt"><span><span class="keyword">private</span><span>&nbsp;HttpConnection&nbsp;a(String&nbsp;s1)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s2&nbsp;=&nbsp;s1;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;as1[]&nbsp;=&nbsp;f.a(f.a(<span class="keyword">new</span><span>&nbsp;f(s2,&nbsp;</span><span class="keyword">true</span><span>)));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;stringbuffer&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;StringBuffer();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(s1&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;&amp;&amp;&nbsp;(s1.indexOf(</span><span class="string">&quot;uc_support_flash&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>&nbsp;||&nbsp;(s1.indexOf(</span><span class="string">&quot;down2.ucweb.com&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>&nbsp;||&nbsp;s1.indexOf(</span><span class="string">&quot;uc123.com&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>&nbsp;||&nbsp;s1.indexOf(</span><span class="string">&quot;uc123_pn&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>&nbsp;||&nbsp;s1.indexOf(</span><span class="string">&quot;uc_common_param&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>)&nbsp;&amp;&amp;&nbsp;s1.indexOf(</span><span class="string">&quot;dn=&quot;</span><span>)&nbsp;==&nbsp;-</span><span class="number">1</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s3&nbsp;=&nbsp;s.j_int_static_fld&nbsp;+&nbsp;<span class="string">&quot;x&quot;</span><span>&nbsp;+&nbsp;s.k_int_static_fld;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringbuffer.append(<span class="string">&quot;ss=&quot;</span><span>).append(s3).append(</span><span class="string">&quot;&amp;pf=&quot;</span><span>).append(</span><span class="string">&quot;69&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(s1.indexOf(</span><span class="string">&quot;dn=&quot;</span><span>)&nbsp;==&nbsp;-</span><span class="number">1</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringbuffer.append(<span class="string">&quot;&amp;dn=&quot;</span><span>).append(s.l&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;?&nbsp;s.l&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(s1.indexOf(</span><span class="string">&quot;uc_support_flash&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringbuffer.append(<span class="string">&quot;&amp;ver=&quot;</span><span>).append(</span><span class="string">&quot;7.2.0&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringbuffer.append(<span class="string">&quot;&amp;ua=&quot;</span><span>).append(f.b(s.p,&nbsp;</span><span class="keyword">null</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(b.b(s.f))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringbuffer.append(<span class="string">&quot;&amp;cp=&quot;</span><span>).append(f.b(s.f,&nbsp;</span><span class="keyword">null</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(b.b(as1[</span><span class="number">0</span><span>])&nbsp;&amp;&amp;&nbsp;s1.indexOf(</span><span class="string">&quot;uc_common_param&quot;</span><span>)&nbsp;!=&nbsp;-</span><span class="number">1</span><span>&nbsp;&amp;&amp;&nbsp;(as1[</span><span class="number">0</span><span>].endsWith(</span><span class="string">&quot;.uc.cn&quot;</span><span>)&nbsp;||&nbsp;as1[</span><span class="number">0</span><span>].endsWith(</span><span class="string">&quot;.ucweb.com&quot;</span><span>)&nbsp;||&nbsp;as1[</span><span class="number">0</span><span>].endsWith(</span><span class="string">&quot;.uc123.com&quot;</span><span>))&nbsp;&amp;&amp;&nbsp;b.b(b.h))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringbuffer.append(<span class="string">&quot;&amp;li=&quot;</span><span>).append(f.b(b.h,&nbsp;</span><span class="keyword">null</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(stringbuffer.length()&nbsp;&gt;&nbsp;</span><span class="number">0</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s1&nbsp;=&nbsp;stringbuffer.toString();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(b.a(as1[</span><span class="number">1</span><span>])&nbsp;||&nbsp;as1[</span><span class="number">1</span><span>].indexOf(</span><span class="string">'?'</span><span>)&nbsp;==&nbsp;-</span><span class="number">1</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as1[<span class="number">1</span><span>]&nbsp;=&nbsp;b.a(as1[</span><span class="number">1</span><span>])&nbsp;+&nbsp;</span><span class="string">'?'</span><span>&nbsp;+&nbsp;s1;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">else</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as1[<span class="number">1</span><span>]&nbsp;+=&nbsp;</span><span class="string">'&amp;'</span><span>&nbsp;+&nbsp;s1;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;a(as1[</span><span class="number">0</span><span>],&nbsp;as1[</span><span class="number">1</span><span>],&nbsp;k_byte_fld,&nbsp;l_byte_fld,&nbsp;</span><span class="number">0</span><span>);&nbsp;&nbsp;</span></span></li>
</ol>
</div>
</p>
<p>提交报文 没查 懒得分析了&nbsp; 有时间的自己找吧&nbsp; 你想分析数据包也可以 自己抓包 我也有几个数据包&nbsp;</p>
<p>想看java代码的 去找n.java 反编译ucjava版去吧。</p>
<p>最好2个集合看 分析的很快。</p>
<p>s60的手机进水了 没法wifi抓包了</p>
<p>n73还没有wifi 所有懒得研究了 不想用蓝牙抓包 麻烦。</p>
<p>想继续研究的可以找我&nbsp; 加我qq好了&nbsp; 我不常在线 有事留言 如果我在线会和你讨论的</p>
<p>&nbsp;</p>
<p>提取出来的uc 请求服务器报文 跟我当年写的一样^_^</p>
<p>
<div class="codeText">
<div class="codeHead">Java代码</div>
<ol start="1" class="dp-j">
    <li class="alt"><span><span class="keyword">boolean</span><span>&nbsp;flag5&nbsp;=&nbsp;flag;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s1&nbsp;=&nbsp;((String)&nbsp;(obj));&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj&nbsp;=&nbsp;<span class="keyword">this</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector&nbsp;vector;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(vector&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;Vector()).addElement(</span><span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;sn&quot;</span><span>,&nbsp;b.a(s.k_java_lang_String_static_fld)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;version&quot;</span><span>,&nbsp;s.x&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;platform&quot;</span><span>,&nbsp;s.o&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;useragent&quot;</span><span>,&nbsp;b.d(s.p)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;last_server&quot;</span><span>,&nbsp;flag5&nbsp;?&nbsp;s.u&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;reassign&quot;</span><span>,&nbsp;String.valueOf(flag5&nbsp;&amp;&amp;&nbsp;b.b(s.u))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_bid&quot;</span><span>,&nbsp;</span><span class="string">&quot;999&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(s.b)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_&quot;</span><span>&nbsp;+&nbsp;b.d(</span><span class="string">&quot;ch&quot;</span><span>),&nbsp;b.d(s.d)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;obj1;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Vector)&nbsp;(obj1&nbsp;=&nbsp;vector)).addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_pfid&quot;</span><span>,&nbsp;</span><span class="string">&quot;69&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Vector)&nbsp;(obj1)).addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_bseq&quot;</span><span>,&nbsp;</span><span class="string">&quot;10033015&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Vector)&nbsp;(obj1)).addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_ss&quot;</span><span>,&nbsp;s.j_int_static_fld&nbsp;+&nbsp;</span><span class="string">&quot;x&quot;</span><span>&nbsp;+&nbsp;s.k_int_static_fld&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(b.b(s.q))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Vector)&nbsp;(obj1)).addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_imei&quot;</span><span>,&nbsp;b.d(s.q)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Vector)&nbsp;(obj1)).addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_dn&quot;</span><span>,&nbsp;s.l&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Vector)&nbsp;(obj1)).addElement(<span class="keyword">new</span><span>&nbsp;String[]&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;m_ssid1&quot;</span><span>,&nbsp;s.w&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector&nbsp;=&nbsp;vector;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj1&nbsp;=&nbsp;<span class="string">&quot;assign&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">byte</span><span>&nbsp;abyte0[]&nbsp;=&nbsp;a(</span><span class="string">&quot;assign&quot;</span><span>,&nbsp;vector,&nbsp;((String)&nbsp;(</span><span class="keyword">null</span><span>)));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>((flag1&nbsp;=&nbsp;((n)&nbsp;(obj)).a(s1,&nbsp;</span><span class="string">&quot;/&quot;</span><span>,&nbsp;abyte0))&nbsp;!=&nbsp;</span><span class="number">1</span><span>&nbsp;&amp;&amp;&nbsp;flag4)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c(i1&nbsp;+&nbsp;<span class="number">20</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(flag1)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag1&nbsp;=&nbsp;a();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
</ol>
</div>
</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-122-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-07-15 08:11</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-121-1.html</guid>
			<title>带有后门的加密算法</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>最及闲着无聊，正在写一个带后门的加密算法，目前写的差不多了。<br />
算法就不发了免得别人嘲笑（本人学艺不精呀^_^）。</p>
<p>不过会提供一下大概的思路。</p>
<p>好像这种带有后门的加密算法在网上应该有，不过流传不广。应该是作为某个组织内部发布给外部用户的。因为要监视用户的信息哈哈。很有天朝的特色。</p>
<p>好了不多说了直接给出算法的一些概况吧。</p>
<p>&nbsp;</p>
<p>加密算法我选用的是32bits密匙TEA算法，比较好用。</p>
<p>TEA算法只能1对1解密，不存在公匙和密匙。</p>
<p>在服务器和用户之间用起来很不错。安全，但是却给监听带来了一些难读。虽然可以从服务器的数据库中读出密匙，但是如果2用户之间利用这个传送就不能截取了，因为没人知道密匙。</p>
<p>所以我就蛋疼的写了这个算法。</p>
<p>XX XX&nbsp; ～ XX XX ～xx</p>
<p>id |后门密匙| 密文部分</p>
<p><br />
其实算法也不难 就是把密匙经过我写的一个算法加密存储在密文的前面。</p>
<p>对于任意1个知道后门密匙加密算法的人来所都可以把这个数据包解开。</p>
<p>id就是加密算法的种子。 利用这个种子对密匙加密。</p>
<p>密匙加密算法用的是 discuz商业版的算法。</p>
<p>很偷懒 php实现。</p>
<p>写的乱死了</p>
<p>没了</p>
<p>over</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-121-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-07-15 07:53</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-120-1.html</guid>
			<title>天朝，密碼已經無意義了嗎？</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p><br />
首先聲明一下，本文章沒有任何的攻擊意思，所有的觀點只是筆者我根據我所了解到的及經歷過一些事情整理出來的，很多觀點並沒有求證過，只是猜測，所以請勿較真。ps認真你就輸了。<br />
ps：最及天天玩wow tw 所以安了個繁體輸入法，不小心把google的給刪了，所以就用繁體寫了。請大家見諒。<br />
<br />
1.當密碼不再安全時。<br />
最及維權人士的twitter賬戶經常被盜，還有維權人士的郵箱被設轉發等等。<br />
不能說黑客的技術提高了，只能說是密碼變得越來越脆弱了。<br />
6位數字md5 大概10分鐘內就能出來吧？這個沒研究過。<br />
還有cmd5這個畜生網站 居然把10位以內的數字+字幕都算出來了。<br />
也就是說10位以下密碼不再安全了。<br />
<br />
2.密碼等於擺設。<br />
我不敢確定真相是否如此，但是很多地方的確是這麼幹的。<br />
論壇在數據庫中除了md5密文外，還會存儲明文密碼。<br />
這個是我在07年時候寫過文章 discuz論壇的釣魚。<br />
寫這篇文章純屬是為了騙稿費。雖然這個很違反道德，但是我的確做了。<br />
我的05年的時候弄了一個小論壇就開了這個功能。<br />
其實就算我不記錄明文的話 破下md5也能知道密碼的。（某些破不出來）<br />
現在的行情是個大論壇或多或少的都會有明文密碼。<br />
還有我聽說校內那些郵箱密碼都會被反在數據庫中的，為啥，天朝要求的，一個不成文的規定。互聯網安全。<br />
就算沒有記錄郵箱密碼，利用校內的密碼也能夠知道了。<br />
ps 據調查80%的用戶 所有的密碼都是一個。<br />
<br />
<br />
所有奉勸大家，別設置複雜的密碼了。多設置幾個密碼吧。<br />
天朝你懂得。<br />
<br />
3.解決方案。<br />
目前沒有很好的解決辦法。人家記錄明文密碼你怎麼辦？只能吃虧了。<br />
我曾經把我的blog的密碼驗證函數給改了。<br />
a=randon(a-z)<br />
a+md5(a+md5(password))<br />
也就是2層md5加密。這個解決了破解問題。但是依然解決不了。明文密碼被截獲的可能。<br />
明文密碼被截獲幾乎無可避免。只要人家在程序上做點文章你的密碼就會被人知道。<br />
解決 向我上面說的那樣&nbsp; 一個網站一個吧。不重要的網站用一個。重要的1個網站1個密碼好了。<br />
<br />
內幕說的很多了。其他的我也不方便多說。<br />
要用戶的明文密碼幹嘛？<br />
為了萬一，和天朝你懂得。還有商業利益。郵箱&mdash;&mdash;密碼的價格在黑市上價格可不便宜。<br />
光email地址就。。。。。。<br />
哈哈你懂得。<br />
其他我不會再說了。</p>]]></description>
			<link>http://landon.v70.us//show-120-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-06-15 10:30</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-119-1.html</guid>
			<title>看來有必要要在學習ccnp一次了</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>2個月沒看了 感覺忘了很多<br />
<br />
ospf還算可以 ， bgp初級的沒問題，在深點就不行了。<br />
分組交換 atm 等等還是一頭霧水呀。。。。</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-119-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-06-13 08:23</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-113-1.html</guid>
			<title>【实验】基于路由协议的的ip封锁</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>本方法是基于路由器如果发现数据包的目的ip不存在于路由表中而且没有配置default-gateway就会丢弃此包和路由器的null0逻辑接口。<br />
所有设置都是建立在cisco路由器上的。<br />
模拟条件是cisco 3640 ios：c3640-js-mz.124-10.bin <br />
模拟器是gns<br />
ps 原来用ios：c3640-ik9o3s-mz.124-10.bin 不知道为什么路由表全对，但是ping不同。。。希望大家能够解答下。<br />
<br />
注意这个封ip只是单向封锁。但是单向锁已经足够了&nbsp; tcp无法建立 udp可以 但是收不到回复。做到双向封锁可以，也很简单 但是会有些问题&nbsp;  后面会去说。<br />
<br />
<a href="http://landon.v70.us//attachment.php?id=90" target="_blank"><img src="http://landon.v70.us//attachments/date_201003/thumb_7769f37fcb4c09e3d73280f99a6da483.png" border="0" alt="大小: 30.69 K&#13;尺寸: 500 x 190&#13;浏览: 6 次&#13;点击打开新窗口浏览全图" width="500" height="190" /></a><br />
请先看r1 r2 r3 r6， 忽略掉r4和r5， r2（core-route）是我们的核心路由。<br />
然后r1 r2 r3 r6 中都配置相同的路由协议 ospf也 ripv2呀 ergip呀 bgp呀。 不过我用的是ergip 因为比较简单。  不用rip是因为rip 有点问题。 bgp我没做个实验正在想bgp的问题后面会详细的说下bgp的问题，这样&nbsp; r1和r6是可以互相访问的。<br />
然后我们在r6上开几个环回口（loopback）<br />
int lo 0<br />
ip ad 12.0.0.1 255.255.255.255<br />
int lo 1 <br />
ip ad 12.0.0.10 255.255.255.255<br />
r1也是能够访问到12.0.0.1和12.0.0.10的<br />
出于一些原因我们不想让r1访问到 r6的地址（122.0.0.11）<br />
变相的来说就是封锁r6的ip地址 但是我们想访问他的环回口。<br />
一般情况下 我们可以用 access-list解决 在r1上设置<br />
<font face="Courier New">access-list 100 deny&nbsp;&nbsp; ip 122.0.0.11  0.0.0.0 any</font><br />
<font face="Courier New">access-list 100 premit &nbsp; ip any any</font><br />
int fa0/0<br />
ip access-group 100 out<br />
ip access-group 100 in<br />
这样 r6就被屏蔽了<br />
如果ip在多点 写access会累死而且access的处理速度很慢的。<br />
不限自己做做实验，写个2000条的access-list。<br />
不用手写 用perl 写一个for循环。 直接telnet 输入。 <br />
<br />
好了解决的方法就是路由协议来封锁ip。 人畜无害，单一匹配 指哪打哪。<br />
没有任何限制，占用cpu资源低。<br />
目前公网上bgp路由器 都有30w条 条目了 ，他们依然能够在10ms内 把数据包转发出去。<br />
我想3640这个路由器上配置个10000w条路由照样没问题吧？<br />
不做bgp的话路由最多也就1000条 剩下9000条让你随便封ip。9000条还不够？ 你就别internet了。 局域网的了。<br />
好了开始介绍了。<br />
r4&nbsp; r5 出场。<br />
r4和 r2上配置好&nbsp; ospf ，如果 r1 r2 r3 r6是ospf 那么r4和 r2上的ospf as 要换另外的一个。<br />
r4&nbsp; r5 之间配置好rip v2.&nbsp;&nbsp; r4在配置好 rip 到ospf的重发布，优先级都调成最高。<br />
这样就可以路由封锁ip了。<br />
我们在r5上录入<br />
ip route 122.0.0.11 255.255.255.255 null 0<br />
tip：null 0 是一个逻辑接口 永远 up&nbsp; 发送过去的包等于直接丢弃，不会出现任何回复， 几乎不占用cup 。<br />
几s 后 r2上就可以看到路由中 122.0.0.11/32的下一跳是r4了。<br />
然后r1继续p r6 <br />
r1#p 122.0.0.11<br />
<br />
Type escape sequence to abort.<br />
Sending 5,  100-byte ICMP Echos to 122.0.0.11, timeout is 2 seconds:<br />
.....<br />
Success  rate is 0 percent (0/5)<br />
<br />
tracert一下<br />
r1#traceroute 12.0.0.11<br />
<br />
Type escape sequence to abort.<br />
Tracing  the route to 12.0.0.11<br />
<br />
&nbsp; 1 1.0.0.2 20 msec 44 msec 32 msec<br />
&nbsp;  2&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 3&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 4&nbsp; *&nbsp; *&nbsp; * <br />
<br />
解释下这个traceroute为什么只有1条 其他都是*。<br />
r2上 做了一条虚假路由&nbsp; r6是永远到不了&nbsp; 现在变成了&nbsp; r1 -》 r2 -》r4 -》r5-》丢弃<br />
这样的话至少应该出现r4 和r5的信息呀？<br />
因为r2上面没有做重分布 我也不想做重分布，所以r4的路由表只有r2和r5这2个直连路由和 r5  rip过来的虚假路由，他不知道r1怎么走，所以他先产生了一个icmp超时的数据包 然后丢弃了。<br />
这样就保护了封锁路由器。<br />
<br />
下面看看r6能不能访问&nbsp; r1<br />
<br />
r6#traceroute 1.0.0.1<br />
<br />
Type escape  sequence to abort.<br />
Tracing the route to 1.0.0.1<br />
<br />
&nbsp; 1 122.0.0.1  44 msec 80 msec 32 msec<br />
&nbsp; 2&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 3&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 4&nbsp; *&nbsp; *&nbsp; *  <br />
&nbsp; 5&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 6&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 7&nbsp; *&nbsp; *&nbsp; * <br />
&nbsp; 8 <br />
<br />
<br />
p  1.0.0.1 &nbsp;<br />
<br />
Type escape sequence to abort.<br />
Sending 5, 100-byte  ICMP Echos to 1.0.0.1, timeout is 2 seconds:<br />
.....<br />
Success rate is  0 percent (0/5)<br />
<br />
<br />
在r1和r2之间抓包 看看<br />
No.&nbsp;&nbsp;&nbsp;&nbsp; Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  Source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Destination&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Protocol Info<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9  7.318000&nbsp;&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo  (ping) request<br />
&nbsp;&nbsp;&nbsp;&nbsp; 10 7.344000&nbsp;&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo (ping) reply<br />
&nbsp;&nbsp;&nbsp;&nbsp; 12 9.327000&nbsp;&nbsp;&nbsp;  122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo (ping) request<br />
&nbsp;&nbsp;&nbsp;&nbsp;  13 9.335000&nbsp;&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp;  Echo (ping) reply<br />
&nbsp;&nbsp;&nbsp;&nbsp; 15 11.339000&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo (ping) request<br />
&nbsp;&nbsp;&nbsp;&nbsp; 16  11.370000&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo  (ping) reply<br />
&nbsp;&nbsp;&nbsp;&nbsp; 17 13.297000&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo (ping) request<br />
&nbsp;&nbsp;&nbsp;&nbsp; 18  13.308000&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo  (ping) reply<br />
&nbsp;&nbsp;&nbsp;&nbsp; 23 15.339000&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo (ping) request<br />
&nbsp;&nbsp;&nbsp;&nbsp; 24  15.381000&nbsp;&nbsp; 1.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 122.0.0.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICMP&nbsp;&nbsp;&nbsp;&nbsp; Echo  (ping) reply<br />
r1 能够收到r6的请求 也恢复了请求 但是被r2无情的转发给了r4 然后r5 很高兴的把它丢掉了。。。<br />
<br />
<br />
工作原理差不多了<br />
开始解释 r4 r5为什么用ripv2<br />
首先用rip就不能用v1 因为v1不支持可变掩码。就会导致ban ip 过多。<br />
第二r5我一直将他当作一台服务器来用。哪位大牛编个程序想什么自动封锁ip呀的。这样不就需要r4做翻译了吗。ospf 难度很大  但是rip就简单多了。 比如gfw。。。<br />
如果只想封锁固定ip 而且数量不多的话 就不用r5了&nbsp; r4 了 直接在核心路由上面写静态路由到null0口就可以了。<br />
但是如果出来路由很多呢？ 3-4台 而且静态封锁ip经常变的话 就需要r4了&nbsp;&nbsp; 因为3-4台你能忙的来但是容易出错。随便找个2800做r4  多好。<br />
如果出口路由在多点10+ 那就有的忙了。<br />
其实我不建议在出口路由上做静态路由来封锁ip，因为出口路由最好不要动，动得越多出问题越多。<br />
如果真要做静态路由还是在backbone上面做吧。<br />
其实最好还是多加一台路由做基于路由协议的扩散吧。<br />
<br />
<br />
关于双向封锁的问题。<br />
双向封锁可以，<br />
只要加入 <span class="status-body"><span class="status-content"><span class="entry-content">ip verify unicast source reachable-via any就ok了<br />
这个是大名鼎鼎的&nbsp; urpf&nbsp; 简单的说，如果数据包不是从路由表中他应该走的端口发过来 那么这个数据包直接丢失。<br />
但是这样会让路由出现很多问题。 只会出现在数量庞大的路由中。<br />
现在的路由都是多条线路负载均衡的去走 ，很多情况下目前地址真的不是从路由器网这个目标端口发送的那个端口进入的的&nbsp; 而是从该路由的其他端口进来的。<br />
这样那些正常的数据包就被丢掉了。<br />
cisco的文档也说 这个设置会造成很多误杀。。。。<br />
</span></span></span><br />
<br />
发现的问题 关于bgp的。<br />
bgp我水平真的不好，承认。<br />
但是bgp可以解决很多问题，单公司多地点办公，总部屏蔽其他分部也要屏蔽。<br />
这个用ospf可以， tunnel就可以办到，但是bgp会更好一些。<br />
如果墙呢？ 肯定是bgp了。<br />
bgp扩散问题好解决。只要不粗心屏蔽列表是不会外传的。（route map）<br />
问题1 我记得bgp的更新好像是触发更新 但是有个延时。具体延时多少 我记得是1分钟。有人说bgp没有延时是实施更新。</p>]]></description>
			<link>http://landon.v70.us//show-113-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-03-23 06:28</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-111-1.html</guid>
			<title>最近</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>发现好久没有写blog，那么闲着没事写一篇吧。<br />
最近的确很忙，研究学校的topology&nbsp; 架构很强大 内接pix&nbsp; 学生网关居然是环路。。。。</p>
<p>目前找到了老师及服务器的出口 学生网络的出口没找到&nbsp; 核心交换机连接到一个hydro 然后就找不到任何ip了。。。。</p>
<p>闲着没事去学校的服务器溜达了一圈，一色linux 系统 debain的&nbsp; 硬盘很大。。。每台大概都是1t左右 一共20多台服务器。</p>
<p>网络设备都是cisco的&nbsp; 3层交换机。</p>
<p>很气人的是 居然用3550 12口交换机做学生的路由 fuk&nbsp; 。。妈的</p>
<p>教师网关是2800.</p>
<p>&nbsp;</p>
<p>这几天研究cisco中 ，ccna快看完了 有时间去考个证的了。</p>
<p>昨天又下了1.8g的电子书+2g的视频资料。唉 学习呀。。。。。</p>
<p>还有一点气人的是 tudou的 电子科技大学 ccna 课程视频居然吓编号。。。 气死我了。</p>
<p>&nbsp;</p>
<p>下周好像天天test。。。 然后就放假了 爽</p>]]></description>
			<link>http://landon.v70.us//show-111-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-03-08 06:33</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-108-1.html</guid>
			<title>【gfw】gfw屏蔽技术不完全解析</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>本文在此文章的基础上根据自己的认识修改而成。http://gfwrev.blogspot.com/2010/02/gfw.html（自觉翻墙）</p>
<p>本人在国外没找到china的vpn 所以只有利用gfw的排外性来测试。</p>
<p>结果可能不准。请见谅</p>
<p>&nbsp;</p>
<p>因为是基于黑盒测验， 研究对象选取了baidu 利用nc和Wireshark去提交数据包来得出结论</p>
<p>Wireshark的pacp 提供下载。我懒得打印了 。</p>
<p>首先</p>
<p>http头文件的&nbsp; GET /POST /***** http 1.1 其中****会被扫描，如果发现关键字就ban掉。 ascii字符无效。</p>
<p>host 依然被ban////</p>
<p>然后其他http头不会扫描 ，怀疑用了正则。。。。。。</p>
<p>内容级别的过滤</p>
<p>gizp会不会解开的问题。</p>
<p>访问无gzip的中国某论坛自己发了1个帖子&nbsp; 里面n个关键字&nbsp; 结果正常返回结果。（怀疑gfw过滤是单向的。）</p>
<p>有待认证的问题&nbsp;&nbsp; gzip会不会解开？</p>
<p>网页内容审核是否只对list名单中的网站有效？&nbsp; 如果对所有网站有效 那么是不是需要一个关键字密度？</p>
<p>肯定的一点 肯定有个list文件。&nbsp; 对于list文件中的网站gzip 100%解包。 include&nbsp; google wikipedia 。。。。</p>
<p>有时间找找资料 然后在找个vpn研究下&nbsp;&nbsp;</p>
<p>ps 有个问题 我用nginx反向代理utube 居然在中国也是链接初中 不知道原因 我怀疑与屏蔽文字有关。。。</p>
<p>&nbsp;</p>
<p>3关于gfw 周边问题。</p>
<p>根据他所讲 gfw是集群。。。 我完全同意。。。。。</p>
<p>但是我觉得gfw可能是无ip的 或者是路由。</p>
<p>但是个人感觉gfw在网络中应该只是无ip的&nbsp; 只是双接口 过滤。这样安全性会高一些&nbsp; 。</p>
<p>最近研究了许多gfw发现&nbsp; 符合中国科研的定律 10%开发。。。。。&nbsp; 粗制滥造/////</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-108-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-02-20 15:00</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-107-1.html</guid>
			<title>n900上安装vsftpd</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>闲着无聊给900上安了一vsftpd</p>
<p>上图</p>
<p><a href="http://landon.v70.us//attachment.php?id=82" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_12fb4493d35af2d2e63961241291d884.png" border="0" alt="大小: 25.7 K&#13;尺寸: 500 x 300&#13;浏览: 6 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a></p>
<p><a href="http://landon.v70.us//attachment.php?id=83" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_0a28185d3e326d1756cc0efbd7fbb8ac.png" border="0" alt="大小: 36.84 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a></p>
<p><a href="http://landon.v70.us//attachment.php?id=84" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_d0f56961d60ed7bc7e0a6b58202fd958.png" border="0" alt="大小: 38.71 K&#13;尺寸: 500 x 300&#13;浏览: 2 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a></p>
<p><a href="http://landon.v70.us//attachment.php?id=85" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_0105553fcf06551df343aa4355f077c5.png" border="0" alt="大小: 50.01 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a></p>
<p><a href="http://landon.v70.us//attachment.php?id=86" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_58da175965ac4913b55ca11be0f1e83a.png" border="0" alt="大小: 41.57 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a></p>
<p><a href="http://landon.v70.us//attachment.php?id=87" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_d73661c99a835597d6abb22464768b30.png" border="0" alt="大小: 40.22 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a></p>
<p>&nbsp;</p>
<p>gcc编译后的vsftpd包发上来<a href="http://landon.v70.us//attachment.php?id=88" title="356.73 K, 下载次数:20" target="_blank">vsftpd-2.2.2.zip</a>&nbsp;&nbsp;</p>
<p>用zip压缩的包。。</p>
<p>#apt-get install make</p>
<p>#make install</p>
<p>即可使用vsftp 别忘了配置一下vsftp～</p>
<p>我没做开机自启动。要用了就用命令启动一下。没用了就kill掉。</p>
<p>我觉得速度比sftp快。资源占用的也少。不过占了1m左右的roofs。</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-107-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-02-18 10:39</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-105-1.html</guid>
			<title>【n900】n900上的第一个程序～</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>上课闲着没事用n900编了一下程序。</p>
<p>大家看看吧 hellowoeld～</p>
<p>n900就是基于<span class="status-body"><span class="entry-content">debian开发的像gcc这样的东西很好安装的。</span></span></p>
<p><span class="status-body"><span class="entry-content">安装完gcc ，make 就可以wget软件安装了 ^_^&nbsp; 有时间试试能不能安个nginx。</span></span></p>
<p><span class="status-body"><span class="entry-content">安装过程：</span></span></p>
<p><span class="status-body"><span class="entry-content">包需要自己一个一个的安装。</span></span></p>
<p><span class="status-body"><span class="entry-content">apt-get install gcc 失败。。。可能是我不会用apt-get吧。。。</span></span></p>
<p><span class="status-body"><span class="entry-content">反正我是一个一个deb包安的。</span></span></p>
<p><span class="status-body"><span class="entry-content">包在这里看 （</span></span><span class="status-body"><span class="entry-content">maemo.org/packages/&nbsp;&nbsp; 搜索gcc</span></span><span class="status-body"><span class="entry-content">）然后下载用ftp扔上去就可以了。</span></span></p>
<p><span class="status-body"><span class="entry-content"><br />
</span></span></p><br /><br /><b>图片附件(缩略图):</b><br /><a href="http://landon.v70.us//attachment.php?id=78" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_2d557464e2b986b7b6ff9b5cc4785261.png" border="0" alt="大小: 25.12 K&#13;尺寸: 500 x 300&#13;浏览: 8 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a><br /><br /><b>图片附件(缩略图):</b><br /><a href="http://landon.v70.us//attachment.php?id=79" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_155fe680fe948c1d6f1558863b40a51d.png" border="0" alt="大小: 28.69 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a><br /><br /><b>图片附件(缩略图):</b><br /><a href="http://landon.v70.us//attachment.php?id=80" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_144d6918dc4604830964814540da07e7.png" border="0" alt="大小: 32.23 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a><br /><br /><b>图片附件(缩略图):</b><br /><a href="http://landon.v70.us//attachment.php?id=81" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_67ce44f91556a4b73b881f88d426536e.png" border="0" alt="大小: 21.72 K&#13;尺寸: 500 x 300&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="500" height="300" /></a>]]></description>
			<link>http://landon.v70.us//show-105-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-02-11 09:20</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-104-1.html</guid>
			<title>SABLOG-X改计划应该提上日程了。。</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>最近垃圾评论实在是太严重了。</p>
<p>后台编辑器也是问题重重呀。<br />
<br />
研究完N900就把blog改改吧，2周删1000条评论我可</p>
<p>受不了！</p>]]></description>
			<link>http://landon.v70.us//show-104-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-02-10 23:17</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-103-1.html</guid>
			<title>【终结篇】ucweb mod研究及uc的联网协议</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p><font size="5"><span class="status-body"><span class="entry-content">有很多网友问我怎么架设uc的代理 我想说的是你们理解错了  我做的代理只是一个UC的mod 为了方便自己 如果想要穿墙直接下载 </span></span></font><font size="5"><span class="status-body"><span class="entry-content">我改好的专用穿墙版好了 <a target="_blank" rel="nofollow" class="tweet-url web" href="http://www.coshim.com/">HTTP://WWW.COSHIM.COM</a>  签名 安装就能用了  我可以服务到今年6月</span></span></font></p>
<p>&nbsp;ps 是共存版的 用英文版修改而成</p>
<p style="background-color: rgb(255, 255, 0);"><font color="#ff0000"><strong><font size="4">如果你只想穿墙不想知道原理那么你直接忽略下面的文字好了~ <br />
</font></strong></font></p>
<p><font color="#ff0000"><strong style="background-color: rgb(255, 255, 0);"><font size="4">内容仅供开发mod使用。。。。。</font></strong></font></p>
<p>&nbsp;</p>
<hr width="100%" size="2" />
<p>由于本人的s60手机n82进水了，干了以后不能用了。s60系列的uc就打算研究到这里了,下面给出实时切换uc服务器的源代码，以及如何修改uc的方法。<br />
在讲解一下uc的原理好了。<br />
下次的题目应该是Android平台的uc了。正在查找入手n1的方法。 canada能在google网店买到刻字无锁版的n1吗？<br />
<br />
好了先上一张uc的流程图<br />
<a href="http://landon.v70.us//attachment.php?id=75" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_642525e66e825f8a8576be1dc323513a.png" border="0" alt="大小: 41.17 K&#13;尺寸: 500 x 374&#13;浏览: 57 次&#13;点击打开新窗口浏览全图" width="500" height="374" /></a><br />
分析<br />
ps 流程图忘画cookie了&nbsp; 懒得重新画了&nbsp; 还有服务器地址写错了应该是ucs5.tj.ucweb.com 少了个s <br />
先说前3步吧 就是截止到uc返回服务器的那步。<br />
抓包获得：<br />
===================code begin==================<br />
POST / HTTP/1.1<br />
Host: uc.ucweb.com<br />
User-Agent: UCWEB7.0.2.37/28/999<br />
Accept: application/xml;text/vnd.wap.wml;text/*,image/jpeg;q=0.5,image/png;q=0.5,image/gif;q=0.5,image/*;q=0.6,video/*,audio/*,*/*;q=0.6<br />
Accept-Charset: windows-1252;q=1.0,utf-8;q=1.0,utf-16;q=1.0,iso-8859-1;q=0.6,*;q=0.1<br />
Connection: close<br />
Content-Length: 272<br />
<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;7.0.2.37&quot; platform=&quot;sis&quot; m_bid=&quot;999&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/999&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
==================code end=================================<br />
一点点介绍提交数据包的信息吧。<br />
post模式 <br />
user-agent 不同的uc版本是不同的 某些版本的uc user-agent是手机型号+uc版本 而有的干脆就是空。<br />
assign这段是重点 uc靠这个来返回服务器的。<br />
sn 不知道如何获得的，好像是开uc随机生成的。 查询sn 的方法 地址栏输入http://command/command=echo.sn 或者打开 !/privete/2001f848/ucalwaysuseuserdata.dat<br />
m_imei就是手机的串码&nbsp; *#06#<br />
m_dn 就是dn了 一个非常重要的信息，获取cookie全靠他&nbsp; ，具体如何重要后面会说&nbsp; 查看方法 打开 !/privete/2001f848/ucalwaysuseuserdata.dat<br />
newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot;&nbsp; 都不清楚。。。。<br />
netname=&quot;wifi&quot;只有用wifi的时候会提交。 这个键值也会导致国外ip访问uc服务器不返回国外服务器。<br />
<br />
下面直接copy以前写的文章的了 是关于后面几步的。<br />
在地址栏输入一个链接=&gt;请求代理服务器去载入这个链接=&gt;代理服务器接到消息去查询数据库查找这个链接是否对应cookie=&gt;合并 cookie后请求该链接=&gt;得到该链接的页面 如果需要的话修改数据库中的cookie=&gt; 对得到的页面做一些处理 like 出去javascript什么的=&gt;压缩页面=&gt;返回给uc页面=&gt;我们就看到这个页面了。<br />
<br />
但是有2点需要注意就是关于wap页面。<br />
wap页面最近我没抓包 以前抓过 我就按以前的写吧&nbsp; 大概是我高三的时候11个月前。<br />
如果请求的页面是wap（wml），uc是不会知道的除非有EXT:A:链接&nbsp; （EXT:A:这个的意思是直接连不经过uc代理）uc服务器依然回去请求这个页面，按照上面的流程，不过服务器会多返回一个信息，大概就是告诉uc 这个页面是wml的 你需要自己链接不用请求我了。<br />
如果没猜错的话uc可以处理wml页面 对xhtml 我觉得不能完全处理 <br />
，因为校内是xhtml的他前面没EXT:A:。我曾经自己写过一个xhtml的手机blog页面 发现返回的ip是代理的。 这个也是1年前的事情了&nbsp; 不知道uc改了没有。<br />
<br />
uc的联网过程 和 请求服务器模式大体是就是这样&nbsp; 我觉得跟官方的出入不超过20%。<br />
<br />
<br />
下面开始说明我对于uc服务器的mod <font color="#800000"><span style="background-color: rgb(255, 255, 0);">（注意这个只是介绍mod 的原理 如果你仅仅要穿墙请看本文开头。这里面会穿插的讲一下如何把uc修改成穿墙的uc）</span></font><br />
开始只为了wifi翻墙，毕竟用3g太费流量，我在国外用wifi居然不能翻墙。所以我就弄了一个uc的翻墙版。<br />
但是国外服务器的优化效果大家也是知道的，我也懒 懒得切换中英文uc，就写了个uc实时切换服务器的mod。但是一些bug+资源占用很。。。 没有推广 只是小范围测试了一下，我服务器还将将能受得了。毕竟我的内存才128m。wp。。。。。fuk的东西 还是sa好呀。<br />
<br />
<font size="4"><strong><font color="#ff0000">如果仅仅想翻墙 永久使用英文服务器 这么做就可以了。 </font></strong></font>目 前让uc的到国外服务器的方法只有一个 就是建立一个自己的代理服务器提供服务器来替换uc的代理服务器提供服务器。</p>
<p>首先更改uc的代理服务器提供服务器的地址，打开uc的源文件把uc.ucweb.com改成自己架设的服务器ucweb.v70.us 还是短域名好 ^_^&nbsp; <br />
然后做一个php程序返回代理服务器 <br />
先看看我们提交服务器请求后uc代理服务器提供服务器如何返回信息<br />
HTTP/1.1 200 OK<br />
Content-length: 184<br />
Upd_interval: 7<br />
Upd_misc: 0<br />
Connection: close<br />
Server: TwistedWeb/2.2.0<br />
Upd_svr_url: http://wap.uc.cn/ucpack/dlmobile/control/client_upgrade.php<br />
Us_srv_url: http://ucus.tj.ucweb.com/usquery.php<br />
Date: Mon, 25 Jan 2010 03:21:40 GMT<br />
Content-type: text/html<br />
Assign: ucs5.tj.ucweb.com:80<br />
<br />
assignucs5.tj.ucweb.com:80UPD_SVR_URL;http://wap.uc.cn/ucpack/dlmobile/control/client_upgrade.phpUPD_INTERVAL7<br />
us_srv_url$http://ucus.tj.ucweb.com/usquery.phpUPD_MISC0<br />
其中包括大量不可见字符。应该是做分割用的。<br />
Assign: ucs5.tj.ucweb.com:80 就是服务器地址了。光这一个uc是不认的 还得在内容中返回assignucs5.tj.ucweb.com:80 （丢失了n个不可见字符 ）</p>
<p><br />
一个简单的uc代理服务器提供服务器的php源码可以这么写<br />
header(&quot;Assign: ucs5.tj.ucweb.com:80&quot;);<br />
print &quot;\000\006assign\000\024ucs5.tj.ucweb.com:80&quot;;<br />
这样我们就能控制uc链接哪个服务器了。 把ucs5.tj.ucweb.com:80给成e问服务器的ip和端口就好了。<br />
<br />
这样一个简单的翻墙代理就出来了。 只要把这个php 扔到空间上然后把 uc原文件中的代理服务器提供服务器地址改成自己的就成了。（也就是上面那个2行php文件的地址 注意塞班uc网址最多12个字符。）</p>
<p>下面内容为mod的 如果您只想翻墙&nbsp; 永久用英文服务器 请忽略</p>
<p><br />
下面介绍一下我的mod的工作原理 看图：<br />
<a href="http://landon.v70.us//attachment.php?id=76" target="_blank"><img src="http://landon.v70.us//attachments/date_201002/thumb_ba3493139a0cf24e02a376b0ee10460c.png" border="0" alt="大小: 85.62 K&#13;尺寸: 500 x 500&#13;浏览: 18 次&#13;点击打开新窗口浏览全图" width="500" height="500" /></a><br />
主要就是返回自己的php代理，然后根据自己的需求选择uc的哪个代理服务器。<br />
在做一个代理切换页面就一切搞定了。这个mod可以多加服务器 也可以学autoproxy根据url自动选择uc的代理。<br />
我也懒得研究了，源码放上吧。<br />
=========================切换服务器用php程序===============</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>&lt;?php&nbsp;&nbsp;</span></span></li>
    <li class=""><span>header(<span class="string">&quot;Content-type:&nbsp;text/html;&nbsp;charset=utf-8&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="vars">$serverlist</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'1'</span><span>&nbsp;=&gt;&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'id'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'1'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'name'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'国内服务器'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'address'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'ucs5.tj.ucweb.com:80'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'2'</span><span>&nbsp;=&gt;&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'id'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'2'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'name'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'国外服务器'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'address'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'67.228.166.109:8086'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>);&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="vars">$dn</span><span>&nbsp;=&nbsp;(preg_match&nbsp;(</span><span class="string">&quot;/.*dn\/(\d+-.{8}),text.*/i&quot;</span><span>,</span><span class="vars">$_SERVER</span><span>[</span><span class="string">&quot;HTTP_ACCEPT&quot;</span><span>]))&nbsp;?&nbsp;preg_replace(</span><span class="string">&quot;/.*dn\/(\d+-.{8}),text.*/i&quot;</span><span>,&nbsp;</span><span class="string">&quot;\$1&quot;</span><span>,</span><span class="vars">$_SERVER</span><span>[</span><span class="string">&quot;HTTP_ACCEPT&quot;</span><span>])&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>&nbsp;;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="comment">//echo&nbsp;$dn;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">if</span><span>(</span><span class="vars">$_GET</span><span>[</span><span class="string">'action'</span><span>]==</span><span class="string">'test'</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>{&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="vars">$dn</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;959266293-00000000&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">if</span><span>(</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$dn</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="func">echo</span><span>&nbsp;</span><span class="string">&quot;NOT&nbsp;ALLOWED!PLEASE&nbsp;USE&nbsp;UCWEB&nbsp;TO&nbsp;BROWSE&nbsp;THIS&nbsp;PAGE.&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$link</span><span>=mysql_connect(</span><span class="string">&quot;localhost&quot;</span><span>,</span><span class="string">&quot;fuk&quot;</span><span>,</span><span class="string">&quot;**************&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>mysql_select_db(<span class="string">&quot;uc&quot;</span><span>,&nbsp;</span><span class="vars">$link</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">if</span><span>(</span><span class="vars">$_POST</span><span>[</span><span class="string">'post'</span><span>]==</span><span class="string">&quot;fuk&quot;</span><span>&amp;&amp;</span><span class="vars">$_POST</span><span>[</span><span class="string">'dn'</span><span>]==</span><span class="string">&quot;$dn&quot;</span><span>){&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">if</span><span>(</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$_POST</span><span>[</span><span class="string">'server'</span><span>])){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="func">echo</span><span>&nbsp;</span><span class="string">&quot;请选择一个服务器&lt;br&gt;&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>printhtml();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$serv</span><span>&nbsp;=&nbsp;</span><span class="vars">$_POST</span><span>[</span><span class="string">'server'</span><span>];&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$q</span><span>&nbsp;=&nbsp;(</span><span class="vars">$_POST</span><span>[</span><span class="string">'new'</span><span>]==</span><span class="string">'en'</span><span>)&nbsp;?&nbsp;</span><span class="string">&quot;INSERT&nbsp;INTO&nbsp;`uc`&nbsp;(`server`&nbsp;,`dn`&nbsp;)VALUES&nbsp;(&nbsp;'$serv'&nbsp;,&nbsp;'$dn'&nbsp;)&quot;</span><span>&nbsp;:&nbsp;</span><span class="string">&quot;update&nbsp;`uc`&nbsp;set&nbsp;`server`&nbsp;=&nbsp;'$serv'&nbsp;WHERE&nbsp;`dn`&nbsp;=&nbsp;'$dn'&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$rs</span><span>&nbsp;=&nbsp;mysql_query(</span><span class="vars">$q</span><span>,&nbsp;</span><span class="vars">$link</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">if</span><span>(!</span><span class="vars">$rs</span><span>){</span><span class="keyword">die</span><span>(</span><span class="string">&quot;Valid&nbsp;result!&quot;</span><span>.mysql_errno()&nbsp;.&nbsp;</span><span class="string">&quot;:&nbsp;&quot;</span><span>&nbsp;.&nbsp;mysql_error()&nbsp;.</span><span class="vars">$q</span><span>);}&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="func">echo</span><span>&nbsp;</span><span class="string">&quot;修改成功！&lt;br&gt;&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>unset&nbsp;(<span class="vars">$q</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>printhtml();&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">function</span><span>&nbsp;printhtml(){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">global</span><span>&nbsp;</span><span class="vars">$dn</span><span>,</span><span class="vars">$link</span><span>,</span><span class="vars">$serverlist</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$q</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;SELECT&nbsp;*&nbsp;FROM&nbsp;`uc`&nbsp;WHERE&nbsp;`dn`='$dn'&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$rs</span><span>&nbsp;=&nbsp;mysql_query(</span><span class="vars">$q</span><span>,&nbsp;</span><span class="vars">$link</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">if</span><span>(!</span><span class="vars">$rs</span><span>){</span><span class="keyword">die</span><span>(</span><span class="string">&quot;Valid&nbsp;result!1&quot;</span><span>.mysql_errno()&nbsp;.&nbsp;</span><span class="string">&quot;:&nbsp;&quot;</span><span>&nbsp;.&nbsp;mysql_error()&nbsp;.</span><span class="vars">$q</span><span>&nbsp;);}&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$row</span><span>&nbsp;=&nbsp;mysql_fetch_row(</span><span class="vars">$rs</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">if</span><span>(</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$row</span><span>)){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="vars">$other</span><span>&nbsp;=&nbsp;</span><span class="string">'&lt;input&nbsp;type=&quot;hidden&quot;&nbsp;name=&quot;new&quot;&nbsp;value=&quot;en&quot;&nbsp;/&gt;'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="vars">$server</span><span>&nbsp;=&nbsp;</span><span class="vars">$row</span><span>[1];&nbsp;&nbsp;</span></span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>print&nbsp;&lt;&lt;&lt;EOT&nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;form&nbsp;action=<span class="string">&quot;$_SERVER[PHP_SELF]&quot;</span><span>&nbsp;method=</span><span class="string">&quot;post&quot;</span><span>&nbsp;&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;input&nbsp;type=<span class="string">&quot;hidden&quot;</span><span>&nbsp;name=</span><span class="string">&quot;dn&quot;</span><span>&nbsp;value=</span><span class="string">&quot;$dn&quot;</span><span>&nbsp;/&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&lt;input&nbsp;type=<span class="string">&quot;hidden&quot;</span><span>&nbsp;name=</span><span class="string">&quot;post&quot;</span><span>&nbsp;value=</span><span class="string">&quot;fuk&quot;</span><span>&nbsp;/&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;<span class="vars">$other</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;请选择服务器：&lt;select&nbsp;name=<span class="string">&quot;server&quot;</span><span>&nbsp;&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;option&nbsp;value=<span class="string">&quot;&quot;</span><span>&gt;==&nbsp;请选择服务器&nbsp;==&lt;/option&gt;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;option&nbsp;value=<span class="string">&quot;&quot;</span><span>&gt;--------------&lt;/option&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!--&nbsp;&nbsp;</span></li>
    <li class="alt"><span>EOT;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">foreach</span><span>&nbsp;(</span><span class="vars">$serverlist</span><span>&nbsp;</span><span class="keyword">as</span><span>&nbsp;</span><span class="vars">$key</span><span>&nbsp;=&gt;&nbsp;</span><span class="vars">$cate</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$selected</span><span>&nbsp;=&nbsp;(</span><span class="vars">$cate</span><span>[</span><span class="string">'id'</span><span>]&nbsp;==&nbsp;</span><span class="vars">$server</span><span>)&nbsp;?&nbsp;</span><span class="string">&quot;selected&quot;</span><span>&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;&lt;&lt;&lt;&nbsp;EOT&nbsp;&nbsp;</span></li>
    <li class=""><span>--&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;option&nbsp;value=<span class="string">&quot;$cate[id]&quot;</span><span>&nbsp;</span><span class="vars">$selected</span><span>&gt;</span><span class="vars">$cate</span><span>[name]&lt;/option&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!--&nbsp;&nbsp;</span></li>
    <li class="alt"><span>EOT;&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>print&nbsp;&lt;&lt;&lt;&nbsp;EOT&nbsp;&nbsp;</span></li>
    <li class=""><span>--&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;&lt;/p&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;p&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;button&nbsp;name=<span class="string">&quot;submit&quot;</span><span>&nbsp;id=</span><span class="string">&quot;submit&quot;</span><span>&nbsp;type=</span><span class="string">&quot;submit&quot;</span><span>&nbsp;</span><span class="keyword">class</span><span>=</span><span class="string">&quot;formbutton&quot;</span><span>&gt;确定&lt;/button&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&lt;/p&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/form&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>EOT;&nbsp;&nbsp;</span></li>
    <li class=""><span>mysql_free_result(<span class="vars">$rs</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="func">exit</span><span>();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>?&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><br />
==============================================================<br />
<br />
<br />
php代理 用了curl库<br />
==============================begin==========================</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>&lt;?php&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="vars">$serverlist</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'1'</span><span>&nbsp;=&gt;&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'id'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'1'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'name'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'国内服务器'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'address'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'ucs5.tj.ucweb.com:80'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'2'</span><span>&nbsp;=&gt;&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'id'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'2'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'name'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'国外服务器'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'address'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'67.228.166.109:8086'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;),&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">if</span><span>&nbsp;(</span><span class="vars">$_SERVER</span><span>[</span><span class="string">'REQUEST_METHOD'</span><span>]&nbsp;==&nbsp;</span><span class="string">'GET'</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="func">exit</span><span>(</span><span class="string">&quot;fuck&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="vars">$dn</span><span>&nbsp;=&nbsp;(preg_match&nbsp;(</span><span class="string">&quot;/ucid=(\d+-.{8})/i&quot;</span><span>,</span><span class="vars">$_SERVER</span><span>[</span><span class="string">'QUERY_STRING'</span><span>]))&nbsp;?&nbsp;preg_replace(</span><span class="string">&quot;/ucid=(\d+-.{8})/i&quot;</span><span>,&nbsp;</span><span class="string">&quot;\$1&quot;</span><span>,</span><span class="vars">$_SERVER</span><span>[</span><span class="string">'QUERY_STRING'</span><span>])&nbsp;:&nbsp;</span><span class="string">&quot;&quot;</span><span>&nbsp;;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$link</span><span>=mysql_connect(</span><span class="string">&quot;localhost&quot;</span><span>,</span><span class="string">&quot;fuk&quot;</span><span>,</span><span class="string">&quot;**************&quot;</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>mysql_select_db(<span class="string">&quot;uc&quot;</span><span>,&nbsp;</span><span class="vars">$link</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$q</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;SELECT&nbsp;*&nbsp;FROM&nbsp;`uc`&nbsp;WHERE&nbsp;`dn`='$dn'&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$rs</span><span>&nbsp;=&nbsp;mysql_query(</span><span class="vars">$q</span><span>,&nbsp;</span><span class="vars">$link</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">if</span><span>(!</span><span class="vars">$rs</span><span>){</span><span class="keyword">die</span><span>(</span><span class="string">&quot;Valid&nbsp;result!&quot;</span><span>.mysql_errno()&nbsp;.&nbsp;</span><span class="string">&quot;:&nbsp;&quot;</span><span>&nbsp;.&nbsp;mysql_error()&nbsp;.</span><span class="vars">$q</span><span>&nbsp;);}&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$row</span><span>&nbsp;=&nbsp;mysql_fetch_row(</span><span class="vars">$rs</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">if</span><span>(</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$row</span><span>)){&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$ip</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;67.228.166.109:8086&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="vars">$w</span><span>&nbsp;=&nbsp;</span><span class="vars">$row</span><span>[1];&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$ip</span><span>&nbsp;=&nbsp;</span><span class="vars">$serverlist</span><span>[</span><span class="vars">$w</span><span>][address];&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$curlInterface</span><span>&nbsp;=&nbsp;curl_init();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$headers</span><span>[]&nbsp;=&nbsp;</span><span class="string">&quot;Content-Type:&nbsp;{$_SERVER[CONTENT_TYPE]}&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$headers</span><span>[]&nbsp;=&nbsp;</span><span class="string">&quot;Accept:&nbsp;{$_SERVER[HTTP_ACCEPT]}&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$headers</span><span>[]&nbsp;=&nbsp;</span><span class="string">&quot;User-Agent&nbsp;:&nbsp;{$_SERVER[HTTP_USER_AGENT]}&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$headers</span><span>[]&nbsp;=&nbsp;</span><span class="string">'Connection&nbsp;:&nbsp;keep-alive'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$headers</span><span>[]&nbsp;=&nbsp;</span><span class="string">'Host:&nbsp;ucs5.tj.ucweb.com'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt_array(<span class="vars">$curlInterface</span><span>,&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//ucs5.tj.ucweb.com</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CURLOPT_URL&nbsp;=&gt;&nbsp;<span class="string">&quot;http://$ip$_SERVER[REQUEST_URI]&quot;</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CURLOPT_HTTPHEADER&nbsp;=&gt;&nbsp;<span class="vars">$headers</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CURLOPT_POST&nbsp;=&gt;&nbsp;1,&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CURLOPT_POSTFIELDS&nbsp;=&gt;&nbsp;<span class="func">file_get_contents</span><span>(</span><span class="string">'php://input'</span><span>))&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$result</span><span>&nbsp;=&nbsp;curl_exec(</span><span class="vars">$curlInterface</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$info</span><span>&nbsp;=&nbsp;curl_getinfo(</span><span class="vars">$curlInterface</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_close(<span class="vars">$curlInterface</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">//&nbsp;file_put_contents&nbsp;&nbsp;('postf.txt',&nbsp;file_get_contents('php://input'));</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="comment">//&nbsp;file_put_contents&nbsp;&nbsp;('serv.txt',var_export&nbsp;($_SERVER,TRUE));</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;file_put_contents&nbsp;&nbsp;('info.txt',var_export&nbsp;($info,TRUE));</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>?&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><br />
==========================end================================<br />
<br />
uc的代理服务器返回服务器我没有现成的 只用了一个if语句写了下自己手机的串号&nbsp; 所以就不发了。<br />
各位高人们自己研究吧。</p>
<p>&nbsp;</p>
<p>uc的一些数据包&nbsp;</p>
<p><a href="http://landon.v70.us//attachment.php?id=77" title="134.57 K, 下载次数:95" target="_blank">cap.rar</a></p>
<p><br />
不懂的话欢迎各位留言。<br />
请大家遵守cc协议。 <br />
本站所有作品若无单独指明均采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-103-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-02-03 12:34</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-101-1.html</guid>
			<title>【beta】ucweb及时服务器切换技术</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>这2天闲着没事，研究了一下uc的工作原理，但是uc的服务器加密还是没有破解出来。<br />
<br />
唉 郁闷呀。如想你想研究我可以给你几个数据包，自己慢慢琢磨吧。<br />
<br />
这回写了一个即使切换服务器的代理。</p>
<p><a href="http://landon.v70.us//attachment.php?id=68" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/9abd33453dd7647a33b045ce64f425ef.png" border="0" alt="大小: 10.52 K&#13;尺寸: 240 x 320&#13;浏览: 18 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><a href="http://landon.v70.us//attachment.php?id=69" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/5be5a1cd3c43b8ab3e2093e178a516e4.png" border="0" alt="大小: 11.96 K&#13;尺寸: 240 x 320&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><a href="http://landon.v70.us//attachment.php?id=70" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/ed0ffc5a98177d49f656ac8c231b2d37.png" border="0" alt="大小: 11.38 K&#13;尺寸: 240 x 320&#13;浏览: 5 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><a href="http://landon.v70.us//attachment.php?id=71" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/88913cb223fa884846ab31fa1b3bc51f.png" border="0" alt="大小: 21.73 K&#13;尺寸: 240 x 320&#13;浏览: 3 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><a href="http://landon.v70.us//attachment.php?id=72" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/1bd093dbb6e2866555a294117c2e9dea.png" border="0" alt="大小: 12.09 K&#13;尺寸: 240 x 320&#13;浏览: 4 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><a href="http://landon.v70.us//attachment.php?id=73" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/15b2b6960162ef38a1fe0556d8f84842.png" border="0" alt="大小: 21.83 K&#13;尺寸: 240 x 320&#13;浏览: 4 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><a href="http://landon.v70.us//attachment.php?id=74" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/08fd2ccc3a62edad5baddf181c161536.png" border="0" alt="大小: 23.72 K&#13;尺寸: 240 x 320&#13;浏览: 6 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a><br />
用php curl +mysql 实现的。<br />
<br />
主要是根据dn 这个东西来判断用户的。这样就解决了国外服务器打开国内网页很慢的问题。<br />
<br />
由于是php curl 我对不熟 对资源的占用也不怎么清楚 所以不公开测试了。<br />
<br />
我这个破vps才128mb内存&nbsp; 我还得挂挂电驴 sorry了。 该死的学校限制电驴。<br />
<br />
其实主要是没钱。。。如果以前那台服务器在的话随便大家用。。。。<br />
<br />
<br />
简单说下原来 一个代理切换页面，一个curl代理中转页面。<br />
<br />
uc=&gt;查询服务器=&gt;返回我的curl代理（非uc代理服务器）=&gt;我的curl代理查询mysql 究竟连uc哪个代理=&gt;连接uc的代理等待返回数据=&gt;接收到uc返回的数据，向手机uc返回数据。<br />
<br />
<br />
curl代理充当了手机和uc服务器间的一个代理，效率有所降低，但是延迟还是不错的。大概1s左右。用Xdebug 看了下 mysql 查询用了300ms&nbsp; curl用了0.923s。。。。 还是不错的。<br />
<br />
其实破解了uc服务器和手机的加密算法也没用。 我可不想写个服务器端出来，uc用的是python写的。在测试中还发现了几个bug。。。。<br />
<br />
和一些弱点。。我用一台386电脑加php写的脚本（我php函数都背下来了，懒得找perl函数，c死也不学，java。。只会语法不会函数） 能让uc服务器宕机。<br />
<br />
为什么不想写uc的服务器端 下面一一道来<br />
<br />
先大家说说uc的一些工作流程吧<br />
在地址栏输入一个链接=&gt;请求服务器去载入这个链接=&gt;服务器接到消息去查询数据库查找这个链接是否对应cookie=&gt;合并cookie后请求该链接=&gt;得到该链接的页面 如果需要的话修改数据库中的cookie=&gt; 对得到的页面做一些处理 like 出去javascript什么的=&gt;压缩页面=&gt;返回给uc页面=&gt;我们就看到这个页面了。<br />
<br />
但是有2点需要注意就是关于wap页面。<br />
wap页面最近我没抓包 以前抓过 我就按以前的写吧&nbsp; 大概是我高三的时候11个月前。<br />
如果请求的页面是wap（wml），uc是不会知道的除非有EXT:A:链接&nbsp; （EXT:A:这个的意思是直接连不经过uc代理）uc服务器依然回去请求这个页面，按照上面的流程，不过服务器会多返回一个信息，大概就是告诉uc 这个页面是wml的 你需要自己链接不用请求我了。<br />
<br />
如果没猜错的话uc可以处理wml页面 对xhtml 我觉得不能完全处理 ，因为校内是xhtml的他前面没EXT:A:。我曾经自己写过一个xhtml的手机blog页面 发现返回的ip是代理的。 这个也是1年前的事情了&nbsp; 不知道uc改了没有。<br />
<br />
不写服务器的原因大家应该都知道了吧？ 就是cookie的储存和 对页面的优化&nbsp; cookie储存还好写 一些写过php代理，所以多花点时间研究数据结构就ok了 但是页面的优化很复杂 大量的正则。 如果是ajax还得要2次请求。。。。要不uc对ajax支持的不好呢。。。。太费劲了。如果我能写出来 ，我就直接找人写个客户端，然后我就能发布一个cu浏览器了。<br />
当然这是开源的。。。。。<br />
如果你想加入这个项目可以找我 大家一起写 ^_^ &nbsp;<br />
<br />
声明：本人对uc没有什么仇恨，只是技术帖。本人一直为uc塞班内测组成员，前一段时间当任内测版版主 现在不是了。我也希望uc能够考虑到我们这些想出国找点东西的人的想法，我知道zf对你们的压力很大，导致了你们对穿墙ucip的限制。我能够理解，没准uc老大还因为这是被叫去喝茶了呢或者和咖啡。（局子喝茶，国安喝咖啡。）顺便问下好喝吗？不好喝的话我就不去喝了。。。所以以后请大家对于这种穿墙的东西低调点，uc也请你不要封的那么严。毕竟给人留条后路也是好的，再好的技术也终有一天会被破解的，除非你能领先世界10年，何况又不是呢？我也保证以后不在国内发这种东西了，我去opda发了一下结果今天看一下12个小时的记录，imei号1321个。也就是说有至少1000个人用了这个版本的uc。。。。。。 好了如果uc封了这条路的话，我有时间会破解一下，破解出的结果会在这里，twitter（@coshim） coshim.com上发布。国内就不发了 我要低调。免得像周兄那样回不去国，或者像XX那样回国就被叫出喝几年的咖啡。请大家见谅。<br />
<br />
如果我服务器的性能允许我会在调试好在线切换服务器程序的代码后开放小范围的测试。如果你想提供服务器空间（空间1m就够了 mysql 10m够几w人了 主要是内存和并发连接数还有cpu够大就好 做好是国外的）支持这个项目的话你可以联系我。联系方式看左边。。。 <br />
<br />
再次感谢大家的支持。</p>]]></description>
			<link>http://landon.v70.us//show-101-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-01-28 11:44</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-100-1.html</guid>
			<title>【暂停更新】ucweb穿墙版 【共存版】【加入v5版】</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p><font size="3">今天我猪哥管我要v5版的穿墙，我就给大家做了一个。</font></p>
<p><font size="3">本来也想做个v1 v2的 但是siscontents133汉化版提示无法解包所以就没做。</font></p>
<p><font size="3">更新下下载地址 <a href="http://www.coshim.com/html/uc/">http://www.coshim.com/html/uc/</a></font></p>
<p><font size="3">Ps 请知道怎么做v1 v2的同学联系下我。。。</font></p>
<p><font size="3">一会研究下uc的中转 打算做个中转服务器出来。<br />
</font></p>
<hr width="100%" size="2" />
<p><font size="5"><font size="4"><br />
</font></font></p>
<p><font size="5"><font size="4">由于uc的us服务器访问中国的延时不是很理想 经常出现丢内容的情况 排版也是一塌糊涂<br />
目前我只找到2个us的服务器地址，但是效果都一样。所以我制作了这个英文的uc穿墙版，和uc中文版共存。直接安装就可以了&nbsp; hosts补丁可以删 了。记得重启^_^<br />
这样访问国内用中文版 穿墙用e文的 两不耽误。 如果我找到了新的服务器并且延时满意我会及时的换上。如果你们知道uc国外的服务器地址 也请告诉我。 最好twitter我 <a href="http://twitter.com/coshim">http://twitter.com/coshim</a> 这个也就告一段落了。 具体如何实现的我不想公布，公布了迟早要封 uc7.1马上要出了 呵呵 唉。 想知道twitter找我吧。<br />
<br />
送上uc e文穿墙版 汉化补丁自己找吧 论坛那上有<br />
下载：<a href="http://landon.v70.us//attachment.php?id=67" title="686.42 K, 下载次数:474" target="_blank">uc-usa.sis</a><br />
<br />
既然已经做出共存的了 我就暂停更新了 等到uc出了新的对策我在继续更新。谢谢大家的支持。<br />
只要遵守 cc 署名-非商业性使用-相同方式共享 2.5 你在怎么改怎么改～^_^<br />
睡觉了。<br />
讨论地址：<a href="http://bbs.opda.cn/viewthread.php?tid=333469">http://bbs.opda.cn/viewthread.php?tid=333469</a></font>  <br />
</font></p>
<hr width="100%" size="2" />
<p>2010.01.25 20：39<br />
<br />
刚才查看uc的exe 文件发现了 联网服务器地址 修改联网服务器地址后 穿墙成功。<br />
exe已经修改完成&nbsp; 本人不知道如何制作共存版 所以就先放一放吧。<br />
目前手头只有测试版 由于我中国那帮哥们没起来呢 没法测试 请大家等一下吧 先对付用 hosts补丁吧<br />
共存的穿墙版 晚些时候放上来<br />
<br />
另外发下一个奇怪的地址 http://st.ucweb.com用途不详。<br />
uc隐藏指令 ext:lp&nbsp; 后面不详 输入没有效果。。。。。</p>
<hr width="100%" size="2" />
<p><br />
2010.01.25更新</p>
<p>&nbsp;但是把这个修改版给我同学让他帮我测试一下结果不成，无论wifi还是gprs返回的都是ucs4 让他在他电脑上post抓包发现反回的也是中国的ucs4</p>
<p>但是让另外的一位网友post数据包却返回了国外IP看来 服务器还是跟IP有关。</p>
<p style="background-color: rgb(255, 102, 0);"><strong><font size="5">注意uc服务器有ip认证，导致穿墙般在国内没法正常使用所以放弃</font></strong></p>
<p>最新方法：<br />
<span class="status-body"><span class="entry-content"><font color="#33cccc"><strong><font size="4" face="Tahoma">@<a href="http://twitter.com/coshim" class="tweet-url username">coshim</a>: [湖南用户证实] 塞班uc穿墙很简单 还是用host 修改大法吧 c:\private\10000882\HOSTS 需要20权限 然后写入 72.13.95.173 uc.ucweb.com 保存成utf8 用原版也可以翻墙<br />
<br />
</font></strong></font></span></span><span class="status-body"><span class="entry-content"><font color="#33cccc"><strong><font size="4" face="Tahoma"> c:\private\10000882\</font></strong></font></span></span>需要自己建立 &nbsp; 需要高权限 手机必须XX</p>
<p>放出一个hosts的安装包&nbsp;&nbsp;&nbsp; 已经用binpda的签过了&nbsp;</p>
<p><a href="http://landon.v70.us//attachment.php?id=66" title="1.1 K, 下载次数:369" target="_blank">uc_host_patch.sis</a></p>
<p>&nbsp;</p>
<p>如果补丁没法成功安装 自己<span class="t_tag" onclick="tagshow(event)" href="http://bbs.opda.cn/tag.php?name=%C7%A9%C3%FB">签名</span>后也没法安装的话请试试以下步骤<br />
因为我不知道c:\private\10000882 是要多少权限 反正我是XX用户直接 根证书签名了。<br />
建立c:\private\10000882\HOSTS 需要20权限 <br />
然后写入 72.13.95.173 uc.ucweb.com 保存成utf8 用原版也可以翻墙<br />
注意HOSTS是<span class="t_tag" onclick="tagshow(event)" href="http://bbs.opda.cn/tag.php?name=%CE%C4%BC%FE">文件</span>&nbsp; &nbsp;目录没有的话就建一个<br />
注。由于使用国外服务器可能网速会变慢。。。请大家注意&nbsp;&nbsp;<br />
访问国内网站可能会遇到链接重置。。。因为关键字。<br />
如果uc没法联网 <span class="t_tag" onclick="tagshow(event)" href="http://bbs.opda.cn/tag.php?name=%C9%BE%B3%FD">删除</span>hosts后 重启uc即可解决(穿墙失效)</p>
<hr width="100%" size="2" />
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />
如果不能使用了请 twitter我（<a href="http://go.coshim.com/me">http://go.coshim.com/me</a>） 或者留言~~</p>
<hr width="100%" size="2" />
<p>ad:最后本人新建了一个网站 <a href="http://www.chinatrix.com">www.chinatrix.com</a> 有时间请过去看看 ^_^</p>
<hr width="100%" size="2" />
<p>&nbsp;</p>
<p>累死我了 用我的netbook当无线ap 配合wireshark 抓包</p>
<p>终于摸清楚了uc验证服务器的步骤 下面简单的介绍下</p>
<p>穿墙版下载在最下边 用binpda 的证书签名了一下 如果你手机XX过直接安装就ok了 否则自己签名一下吧&nbsp;</p>
<p>我没做共存版&nbsp; 最好把原本先删一下。</p>
<p>ps 本人也不敢保证穿墙的成功性，因为我在canada 用的wifi 所以请大家测试一下 如果不能用请通知我 我在想办法</p>
<p>为了保证uc不封杀我 我把我的sn和imei 隐去了</p>
<p>开启uc uc向服务器请求，<br />
31&nbsp;&nbsp;&nbsp; 19.523616&nbsp;&nbsp;&nbsp; 192.168.1.254&nbsp;&nbsp;&nbsp; 221.238.196.248&nbsp;&nbsp;&nbsp; HTTP&nbsp;&nbsp;&nbsp; POST / HTTP/1.1<br />
<br />
$,s|}Ery@E[\}P3JEX<br />
YctPOST / HTTP/1.1<br />
Host: uc.ucweb.com<br />
User-Agent: UCWEB7.0.2.37/28/999<br />
Accept: application/xml;text/vnd.wap.wml;text/*,image/jpeg;q=0.5,image/png;q=0.5,image/gif;q=0.5,image/*;q=0.6,video/*,audio/*,*/*;q=0.6<br />
Accept-Charset: windows-1252;q=1.0,utf-8;q=1.0,utf-16;q=1.0,iso-8859-1;q=0.6,*;q=0.1<br />
Connection: close<br />
Content-Length: 272<br />
<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;7.0.2.37&quot; platform=&quot;sis&quot; m_bid=&quot;999&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/999&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
<br />
<br />
33&nbsp;&nbsp;&nbsp; 19.843761&nbsp;&nbsp;&nbsp; 221.238.196.248&nbsp;&nbsp;&nbsp; 192.168.1.254&nbsp;&nbsp;&nbsp; HTTP&nbsp;&nbsp;&nbsp; HTTP/1.1 200 OK&nbsp; (text/html)<br />
}$,s|E7(@lP}E3J?e/<br />
cYHTTP/1.1 200 OK<br />
Content-length: 184<br />
Upd_interval: 7<br />
Upd_misc: 0<br />
Connection: close<br />
Server: TwistedWeb/2.2.0<br />
Upd_svr_url: http://wap.uc.cn/ucpack/dlmobile/control/client_upgrade.php<br />
Us_srv_url: http://ucus.tj.ucweb.com/usquery.php<br />
Date: Mon, 25 Jan 2010 03:21:40 GMT<br />
Content-type: text/html<br />
Assign: ucs5.tj.ucweb.com:80<br />
<br />
assignucs5.tj.ucweb.com:80UPD_SVR_URL;http://wap.uc.cn/ucpack/dlmobile/control/client_upgrade.phpUPD_INTERVAL7<br />
us_srv_url$http://ucus.tj.ucweb.com/usquery.phpUPD_MISC0<br />
<br />
服务器返回的代理是 ucs5.tj.ucweb.com 如果我把这个域名解析到uc的e文ip会怎样呢？<br />
直接就可以用e问的服务器了，但是e文的服务器是8086 （http://67.228.166.109:8086）所以这就是死路一条了。<br />
<br />
e文的 Content-Length: 245<br />
&lt;assign sn=&quot;28-29508**20-3ca***e&quot; version=&quot;6.3.3.28&quot; platform=&quot;sis&quot; m_bid=&quot;300&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09020517&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;29508***0-c755***5&quot; useragent=&quot;NOKIAN82&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot;/&gt;<br />
<br />
cn的 Content-Length: 272<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;7.0.2.37&quot; platform=&quot;sis&quot; m_bid=&quot;999&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/999&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
<br />
看下差距<br />
版本 <br />
m_bin<br />
好了祭出nc 开始测试uc服务器是如何验证的。<br />
<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;7.0.2.37&quot; platform=&quot;sis&quot; m_bid=&quot;300&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/300&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
返回<br />
ucs5.tj.ucweb.com:80&nbsp; 失败<br />
<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;6.3.3.28&quot; platform=&quot;sis&quot; m_bid=&quot;300&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/300&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
返回ucs4.tj.ucweb.com:80&nbsp; 失败<br />
<br />
在继续该<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;6.3.3.28&quot; platform=&quot;sis&quot; m_bid=&quot;300&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09020517&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/300&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
还是ucs4 晕 难道跟 其他的有关？继续试<br />
<br />
难道是与sn有关？ 换上最初的 改下sn post<br />
&lt;assign sn=&quot;28-29508**20-3ca***e&quot; version=&quot;7.0.2.37&quot; platform=&quot;sis&quot; m_bid=&quot;999&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;29508***0-c755***5&quot; useragent=&quot;UCWEB7.0.2.37/28/999&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; netname=&quot;wifi&quot;/&gt;<br />
还是失败<br />
<br />
最后多次替换试验发现 中文服务器还是e文服务器与 netname=&quot;wifi&quot;有关。。。。。<br />
<br />
去掉 netname=&quot;wifi&quot;<br />
&lt;assign sn=&quot;37-959266***-480f5***&quot; version=&quot;7.0.2.37&quot; platform=&quot;sis&quot; m_bid=&quot;300&quot; m_pfid=&quot;28&quot; m_bseq=&quot;09113011&quot; m_ss=&quot;240x320&quot; m_imei=&quot;3589840*****642&quot; m_dn=&quot;95926****-37d***ca&quot; useragent=&quot;UCWEB7.0.2.37/28/300&quot; newserver=&quot;1&quot; last_server=&quot;&quot; reassign=&quot;false&quot; /&gt; 直接返回服务器 67.228.166.108:8090 ？这个 好像没有见过 一查是美国的<br />
<br />
好了 uc的认证关键是netname&nbsp; 如果empty才会返回中文的服务器。。。。。<br />
这就让人郁闷了&nbsp; 要不改uc&nbsp; 要不 写个php认证做个host转向。<br />
<br />
<br />
改了一下问价把 999都改成300<br />
再把netname=&quot;wifi&quot; 改成了 caonima=&quot;ucuc&quot;<br />
wifi链接成功！</p>
<p><a href="http://landon.v70.us//attachment.php?id=64" target="_blank"><img src="http://landon.v70.us//attachments//date_201001/dba124a4fe75bfa9e116bca1278c1073.jpg" border="0" alt="大小: 15.88 K&#13;尺寸: 240 x 320&#13;浏览: 9 次&#13;点击打开新窗口浏览全图" width="240" height="320" /></a></p>
<p>twitter！</p>
<p><strike><strong><font size="7" face="Arial">已经失效！下载：<a href="http://landon.v70.us//attachment.php?id=65" title="694.9 K, 下载次数:270" target="_blank">uc_usa.sis</a></font></strong></strike></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description>
			<link>http://landon.v70.us//show-100-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-01-25 12:48</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-99-1.html</guid>
			<title>对于wp我是相当的无奈</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>我都想骂街了，本来10分钟能搞定的问题现在拖了100分钟还没搞定</p>
<p>wp的速度是不敢恭维呀</p>
<p>我的vps跑起来很吃力。。。。。。</p>
<p>载入主页要3s&nbsp; 后台基本10s以上吧 插件都关了。 内存居然能耗到300+我就日了</p>
<p>看看这个数据</p>
<p><a href="http://landon.v70.us//attachment.php?id=63" target="_blank"><img src="http://landon.v70.us//attachments/date_201001/thumb_17aa3c3ab38c130bf44aa848d541c55b.png" border="0" alt="大小: 31.54 K&#13;尺寸: 500 x 278&#13;浏览: 2 次&#13;点击打开新窗口浏览全图" width="500" height="278" /></a></p>
<p>我就操了&nbsp;&nbsp; 这还是前台 有文章的标签要4s的处理时间。。。。</p>
<p>我vps跑discuz都没怎么费劲呢。</p>
<p>难道是我的代码有问题？不知道呀 睡觉明天在研究吧</p>
<p>wp还把我的php搞死了n次。。。。</p>]]></description>
			<link>http://landon.v70.us//show-99-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-01-24 16:32</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-94-1.html</guid>
			<title>【喔喔】新喔喔系统</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>10天时间吧&nbsp; 把wowoo的新整站程序弄得差不多了</p>
<p>其实我每天也没写什么，中午起床，下午看神话，晚上跟某猪聊聊天 也没几个时间写代码。</p>
<p>感觉代码质量不高</p>
<p>基本抄了许多sablog的源码，本来要抄dz的 但是dz放的时间太久了&nbsp; 有点忘了。</p>
<p>sablog写的还算不错 ， 不过有些文件也有些瑕疵。 估计是4ngel 累了吧。</p>
<p>目前我把后台写的差不多了&nbsp; 主页没写&nbsp; 改天加个ip。</p>
<p>就差个主页了。</p>
<p>前台注册 登录 flv显示 搞定&nbsp; 差主页和分类了。</p>
<p>话说上模板有些困难。主要是我编辑模板用了很长的时间。不知道为什么 怎么改heml都看着不顺眼，可能是天生美哟艺术细胞的原因吧。</p>
<p>后台模板直接用sa的了 其实用dz的了&nbsp; 漂亮。。但是我懒得去改代码了。。。。。</p>
<p>懒。。。。</p>
<p>睡觉</p>
<p>快开学了。</p>
<p>中国快放假了/。</p>]]></description>
			<link>http://landon.v70.us//show-94-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-01-10 15:52</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-93-1.html</guid>
			<title>弹幕播放器</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>今天用了2个小时把弹幕播放器改了下，感觉还可以吧<br />
<br />
下一步美化：<br />
1 sm问题<br />
2 评论时间<br />
3 大小<br />
<br />
<br />
今天也把配套的评论系统写了一下 只完成了 <br />
input.php 进度缓慢。。。<br />
<br />
<br />
测试地址http://beta.wowoo.net/</p>]]></description>
			<link>http://landon.v70.us//show-93-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2010-01-07 12:34</pubDate>
		</item>
		<item>
			<guid>http://landon.v70.us//show-83-1.html</guid>
			<title>【PHP】php转化图片为ascii字符画</title>
			<author>tywtyw2002</author>
			<description><![CDATA[<p>打dota满员了没进去，正好也是闲着，就写一写这个吧。<br />
用php转化图片为ascii字符画。<br />
目前ascii字符画我只明白灰度的原理，对于彩色字符画不懂。<br />
那种只用了一个字符靠颜色不同而生成的字符画我觉得不应该叫做ascii字符画。<br />
那种原理更加的简单，读取一个像素点的颜色然后输出 &lt;font color=#******&gt;字符&lt;/font&gt;就ok了，<br />
但这种的弊端就是html文件十分大，如果一副200*120的绚丽色彩图片html能达到8mb。<br />
解决的办法就是降低色彩的位数。这个图出了显示技术外，我觉得没有什么实际用处。<br />
<br />
<br />
下面介绍ascii字符画，ascii字符画就是用ascii字符（asdfgh！@￥什么的都是ascii字符）来表示不同的灰度，<br />
此技术的难点是ascii字符灰度表，灰度表的好坏决定了图片的好坏。<br />
计算ascii字符的灰度并不是只计算改ascii字符所占的像素。<br />
因为在10号字很多ascii所占像素值是相同的，还有有些字符即使占得像素很多但是他留白的地方也很多。<br />
8和H的像素一样多 可能h还有多一些，但是在远处看&nbsp; 8组成的画要比 H组成的更黑一些。<br />
我自己计算了3个灰度表感觉都不是很理想，经过多方面查找找到了一个比较不错的灰度表。<br />
色阶是63bit的，已经足够了。<br />
我自己做了个24bit感觉很缺颜色，只是表现出大体的，具体细节都丢失了。<br />
<br />
63bit的ascii灰度表我只有php的了，在网上找的那个被我删了。。。。</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="vars">$gray</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>(&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'0'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'64'</span><span>&nbsp;,&nbsp; //前面为灰度值 0是黑色 62是白色&nbsp;&nbsp; 后面为字符的ascii码<br />
    </span></span></li>
    <li class="alt"><span><span class="string">'1'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'35'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'2'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'36'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'3'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'37'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'4'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'38'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'5'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'56'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'6'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'66'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'7'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'77'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'8'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'87'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'9'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'42'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'10'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'109'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'11'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'119'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'12'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'113'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'13'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'112'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'14'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'100'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'15'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'98'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'16'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'107'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'17'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'104'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'18'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'97'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'19'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'111'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'20'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'81'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'21'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'48'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'22'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'79'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'23'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'90'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'24'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'88'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'25'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'89'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'26'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'85'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'27'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'74'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'28'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'67'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'29'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'76'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'30'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'116'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'31'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'102'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'32'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'106'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'33'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'122'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'34'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'120'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'35'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'110'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'36'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'117'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'37'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'118'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'38'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'99'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'39'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'114'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'40'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'91'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'41'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'93'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'42'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'123'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'43'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'125'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'44'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'49'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'45'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'40'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'46'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'41'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'47'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'124'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'48'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'47'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'49'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'63'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'50'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'73'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'51'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'108'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'52'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'33'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'53'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'105'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'54'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'62'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'55'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'60'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'56'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'43'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'57'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'95'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'58'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'126'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'59'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'45'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'60'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'59'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="string">'61'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'44'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="string">'62'</span><span>&nbsp;=&gt;&nbsp;</span><span class="string">'46'</span><span>&nbsp;,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>);&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>灰度表完成了 就可以把图片转换成ascii字符画了。<br />
<br />
大致原理是 ，读出每一个像素的颜色信息 。（先计算长和高，然后for语句）<br />
读像素的颜色我用的是php的gd库</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="vars">$colorIndex</span><span>&nbsp;=&nbsp;imagecolorat(</span><span class="vars">$img</span><span>,</span><span class="vars">$xx</span><span>,</span><span class="vars">$yy</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="vars">$color</span><span>&nbsp;=&nbsp;imagecolorsforindex(</span><span class="vars">$img</span><span>,</span><span class="vars">$colorIndex</span><span>);&nbsp; <br />
    </span></span></li>
</ol>
</div>
<p>不过这个信息rgb是分开的，而灰度的rgb的值是相同的。<br />
就需要转换了。在网上找到的公式 $gray = 0.3*$color[red] + 0.59*$color[green] +&nbsp; 0.11*$color[blue];<br />
灰度是256bit的，而我们只有63bit 那么做个简单的加减法运算就可以了。<br />
最后echo一下字符就ok了。<br />
<br />
本人才疏学浅，程序就不放了，免得被人笑话。<br />
我相信你们写这个程序也就几分钟而已 。^_^</p>
<p>继续dota了，上一篇日志是做完的视频。</p>
<p>我的word都毁了&nbsp; word2007打开txt 在存成docx有bug 空格自动没了。。。倒是字符画参差不齐。。。</p>
<p>最后提醒一句字体要用等距的 比如宋体</p>
<p><br />
<br />
ps 自己感觉程序执行时间还可以，一张150.*120的图片 0.759s<br />
717张用时250多s</p>]]></description>
			<link>http://landon.v70.us//show-83-1.html</link>
			<category domain="http://landon.v70.us//category-3-1.html">网络·技术</category>
			<pubDate>2009-12-16 06:04</pubDate>
		</item>
	</channel>
</rss>
