【代码】
<code>#encoding=utf-8</code>
<code>#author:walker</code>
<code>#date:2015-08-05</code>
<code>#summary:通过断开连接时TP-LINK重新拨号,以切换IP。此代码经过python3.4测试(适用于TL-WR847N)。</code>
<code>import</code> <code>base64, requests, traceback</code>
<code>def</code> <code>ChangeIP():</code>
<code> </code><code>ip </code><code>=</code> <code>'192.168.1.1'</code>
<code> </code><code>user </code><code>=</code> <code>'admin'</code>
<code> </code><code>pwd </code><code>=</code> <code>'admin'</code>
<code> </code>
<code> </code><code>desturl </code><code>=</code> <code>'http://'</code> <code>+</code> <code>ip </code><code>+</code> <code>'/userRpm/StatusRpm.htm?Disconnect=%B6%CF%20%CF%DF&wan=1'</code>
<code> </code><code>auth </code><code>=</code> <code>'Basic '</code> <code>+</code> <code>base64.b64encode((user</code><code>+</code><code>':'</code><code>+</code><code>pwd).encode(encoding</code><code>=</code><code>'utf-8'</code><code>)).decode(encoding</code><code>=</code><code>'utf-8'</code><code>)</code>
<code> </code><code>heads </code><code>=</code> <code>{</code>
<code> </code><code>'Accept'</code><code>: </code><code>'*/*'</code><code>,</code>
<code> </code><code>'User-Agent'</code><code>: </code><code>'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)'</code><code>,</code>
<code> </code><code>'Referer'</code> <code>: </code><code>'http://'</code> <code>+</code> <code>ip </code><code>+</code> <code>'/userRpm/StatusRpm.htm'</code><code>,</code>
<code> </code><code>#'Authorization' : auth</code>
<code> </code><code>'Cookie'</code><code>: </code><code>'Authorization='</code> <code>+</code> <code>auth</code>
<code> </code><code>}</code>
<code> </code><code>try</code><code>:</code>
<code> </code><code>r </code><code>=</code> <code>requests.get(url</code><code>=</code><code>desturl, headers</code><code>=</code><code>heads)</code>
<code> </code><code>print</code><code>(r)</code>
<code> </code><code>except</code><code>:</code>
<code> </code><code>exMsg </code><code>=</code> <code>'* exMsg:\n'</code> <code>+</code> <code>traceback.print_exc()</code>
<code> </code><code>print</code><code>(exMsg)</code>
<code>if</code> <code>__name__ </code><code>=</code><code>=</code> <code>"__main__"</code><code>: </code>
<code> </code><code>ChangeIP()</code>
【注意】
认证部分不能完全照搬,可通过浏览器分析请求头。
参考:
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1681948如需转载请自行联系原作者
RQSLT