﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-alliciga</title><link>http://www.blogjava.net/alliciga/</link><description>&lt;font color="green" size=+1&gt;开拓创新，自强不息&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Sat, 02 May 2026 05:08:15 GMT</lastBuildDate><pubDate>Sat, 02 May 2026 05:08:15 GMT</pubDate><ttl>60</ttl><item><title>用 Python 实现修改IP地址、投票</title><link>http://www.blogjava.net/alliciga/articles/383993.html</link><dc:creator>Alliciga</dc:creator><author>Alliciga</author><pubDate>Wed, 25 Jul 2012 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/alliciga/articles/383993.html</guid><wfw:comment>http://www.blogjava.net/alliciga/comments/383993.html</wfw:comment><comments>http://www.blogjava.net/alliciga/articles/383993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/alliciga/comments/commentRss/383993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/alliciga/services/trackbacks/383993.html</trackback:ping><description><![CDATA[Python 实现 修改 本机IP地址，并自动投票的一段代码，仅供个人学习研究。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp; 1</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;sys<br /><span style="color: #008080; ">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;os,tempfile,webbrowser,random<br /><span style="color: #008080; ">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;wmi,time<br /><span style="color: #008080; ">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">from</span>&nbsp;twisted.web&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;client<br /><span style="color: #008080; ">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">from</span>&nbsp;twisted.internet&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;reactor<br /><span style="color: #008080; ">&nbsp;&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;ModifyIP(ip,&nbsp;mask,&nbsp;gateway):<br /><span style="color: #008080; ">&nbsp;&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wmiService&nbsp;=&nbsp;wmi.WMI()<br /><span style="color: #008080; ">&nbsp;&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colNicConfigs&nbsp;=&nbsp;wmiService.Win32_NetworkAdapterConfiguration(IPEnabled&nbsp;=&nbsp;True)&nbsp;<br /><span style="color: #008080; ">&nbsp;10</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;len(colNicConfigs)&nbsp;&lt;&nbsp;1:<br /><span style="color: #008080; ">&nbsp;12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">没有找到可用的网络适配器</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit()<br /><span style="color: #008080; ">&nbsp;14</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">选择要修改的网卡</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;16</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;objNicConfig&nbsp;=&nbsp;colNicConfigs[0]&nbsp;<br /><span style="color: #008080; ">&nbsp;17</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">目前配置为：</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">IP:&nbsp;%s</span><span style="color: #800000; ">'</span>&nbsp;%&nbsp;objNicConfig.IPAddress<br /><span style="color: #008080; ">&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">掩码:&nbsp;%s</span><span style="color: #800000; ">'</span>&nbsp;%&nbsp;objNicConfig.IPSubnet<br /><span style="color: #008080; ">&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">网关:&nbsp;%s</span><span style="color: #800000; ">'</span>&nbsp;%&nbsp;objNicConfig.DefaultIPGateway<br /><span style="color: #008080; ">&nbsp;22</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrIPAddresses&nbsp;=&nbsp;[ip]<br /><span style="color: #008080; ">&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrSubnetMasks&nbsp;=&nbsp;[mask]<br /><span style="color: #008080; ">&nbsp;25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrDefaultGateways&nbsp;=&nbsp;[gateway]<br /><span style="color: #008080; ">&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrGatewayCostMetrics&nbsp;=&nbsp;[1]<br /><span style="color: #008080; ">&nbsp;27</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intReboot&nbsp;=&nbsp;0&nbsp;<br /><span style="color: #008080; ">&nbsp;29</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnValue&nbsp;=&nbsp;objNicConfig.EnableStatic(IPAddress&nbsp;=&nbsp;arrIPAddresses,&nbsp;SubnetMask&nbsp;=&nbsp;arrSubnetMasks)&nbsp;<br /><span style="color: #008080; ">&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;returnValue<br /><span style="color: #008080; ">&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;returnValue[0]&nbsp;==&nbsp;0:<br /><span style="color: #008080; ">&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">设置IP成功</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">elif</span>&nbsp;returnValue[0]&nbsp;==&nbsp;1:<br /><span style="color: #008080; ">&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">设置IP成功</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intReboot&nbsp;+=&nbsp;1<br /><span style="color: #008080; ">&nbsp;37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>:<br /><span style="color: #008080; ">&nbsp;38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">修改IP失败:&nbsp;IP设置发生错误</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit()<br /><span style="color: #008080; ">&nbsp;40</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnValue&nbsp;=&nbsp;objNicConfig.SetGateways(DefaultIPGateway&nbsp;=&nbsp;arrDefaultGateways,&nbsp;GatewayCostMetric&nbsp;=&nbsp;arrGatewayCostMetrics)<br /><span style="color: #008080; ">&nbsp;42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;returnValue[0]&nbsp;==&nbsp;0:<br /><span style="color: #008080; ">&nbsp;43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">设置网关成功</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">elif</span>&nbsp;returnValue[0]&nbsp;==&nbsp;1:<br /><span style="color: #008080; ">&nbsp;45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">设置网关成功</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intReboot&nbsp;+=&nbsp;1<br /><span style="color: #008080; ">&nbsp;47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>:<br /><span style="color: #008080; ">&nbsp;48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">修改网关失败:&nbsp;网关设置发生错误</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit()&nbsp;<br /><span style="color: #008080; ">&nbsp;50</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;intReboot&nbsp;&gt;&nbsp;0:<br /><span style="color: #008080; ">&nbsp;52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">需要重新启动计算机</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>:<br /><span style="color: #008080; ">&nbsp;54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">''</span><br /><span style="color: #008080; ">&nbsp;55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">修改后的配置为：</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">&nbsp;56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">IP:&nbsp;%s</span><span style="color: #800000; ">'</span>&nbsp;%&nbsp;objNicConfig.IPAddress<br /><span style="color: #008080; ">&nbsp;57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">掩码:&nbsp;%s</span><span style="color: #800000; ">'</span>&nbsp;%&nbsp;objNicConfig.IPSubnet<br /><span style="color: #008080; ">&nbsp;58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">网关:&nbsp;%s</span><span style="color: #800000; ">'</span>&nbsp;%&nbsp;objNicConfig.DefaultIPGateway<br /><span style="color: #008080; ">&nbsp;59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">''</span><br /><span style="color: #008080; ">&nbsp;60</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;61</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;62</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;63</span>&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;handleError(failure):<br /><span style="color: #008080; ">&nbsp;64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">"</span><span style="color: #800000; ">Error:</span><span style="color: #800000; ">"</span>,failure.getErrorMessage()<br /><span style="color: #008080; ">&nbsp;65</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reactor.stop()<br /><span style="color: #008080; ">&nbsp;66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">"</span><span style="color: #800000; ">--------------Vote&nbsp;failed&nbsp;one&nbsp;time---------------</span><span style="color: #800000; ">"</span><br /><span style="color: #008080; ">&nbsp;67</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;68</span>&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;showPage(pageData):<br /><span style="color: #008080; ">&nbsp;69</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;pageData<br /><span style="color: #008080; ">&nbsp;70</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reactor.stop()<br /><span style="color: #008080; ">&nbsp;71</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">"</span><span style="color: #800000; ">--------------Voted&nbsp;success&nbsp;one&nbsp;time---------------</span><span style="color: #800000; ">"</span><br /><span style="color: #008080; ">&nbsp;72</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;73</span>&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;vote():<br /><span style="color: #008080; ">&nbsp;74</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;voteURL=<span style="color: #800000; ">"</span><span style="color: #800000; ">http://10.14.4.9:8081/plus/d3vote/new/vote/dovote.jsp?VoteIds=4&amp;type=0</span><span style="color: #800000; ">"</span><br /><span style="color: #008080; ">&nbsp;75</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;76</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postRequest=client.getPage(voteURL,method=<span style="color: #800000; ">"</span><span style="color: #800000; ">POST</span><span style="color: #800000; ">"</span>)<br /><span style="color: #008080; ">&nbsp;77</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postRequest.addCallback(showPage).addErrback(handleError)<br /><span style="color: #008080; ">&nbsp;78</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reactor.run()<br /><span style="color: #008080; ">&nbsp;79</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;80</span>&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;main():<br /><span style="color: #008080; ">&nbsp;81</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sysargv&nbsp;=&nbsp;sys.argv<br /><span style="color: #008080; ">&nbsp;82</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prefix&nbsp;=&nbsp;sys.argv[1]<br /><span style="color: #008080; ">&nbsp;83</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;=&nbsp;sys.argv[2]<br /><span style="color: #008080; ">&nbsp;84</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;=&nbsp;sys.argv[3]<br /><span style="color: #008080; ">&nbsp;85</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mask&nbsp;=&nbsp;sys.argv[4]<br /><span style="color: #008080; ">&nbsp;86</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gateway&nbsp;=&nbsp;sys.argv[5]<br /><span style="color: #008080; ">&nbsp;87</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;88</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ipList&nbsp;=&nbsp;[]<br /><span style="color: #008080; ">&nbsp;89</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;i&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;range(int(start),&nbsp;int(end)&nbsp;+&nbsp;1):<br /><span style="color: #008080; ">&nbsp;90</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ipList.append(prefix&nbsp;+&nbsp;str(i))<br /><span style="color: #008080; ">&nbsp;91</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;92</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;ip&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;ipList:<br /><span style="color: #008080; ">&nbsp;93</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModifyIP(ip,&nbsp;mask,&nbsp;gateway)<br /><span style="color: #008080; ">&nbsp;94</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vote()<br /><span style="color: #008080; ">&nbsp;95</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time.sleep(3)<br /><span style="color: #008080; ">&nbsp;96</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;97</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;98</span>&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;<span style="color: #800080; ">__name__</span>==<span style="color: #800000; ">"</span><span style="color: #800000; ">__main__</span><span style="color: #800000; ">"</span>:<br /><span style="color: #008080; ">&nbsp;99</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main()<br /><span style="color: #008080; ">100</span>&nbsp;</div><img src ="http://www.blogjava.net/alliciga/aggbug/383993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/alliciga/" target="_blank">Alliciga</a> 2012-07-25 22:27 <a href="http://www.blogjava.net/alliciga/articles/383993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>