一個(gè)簡(jiǎn)易的TCP端口掃描器,使用python3實(shí)現(xiàn)。需求:掃描目標(biāo)網(wǎng)站開(kāi)放哪些端口號(hào),將所有開(kāi)放的端口號(hào)輸出。分析:使用socket連接,如果連接成功,認(rèn)為端口開(kāi)放,如果連接失敗,認(rèn)為端口關(guān)閉(有可能端口開(kāi)放但連接失敗,這里簡(jiǎn)單認(rèn)為端口不開(kāi)放)使用到的庫(kù):socket,threading過(guò)程:先定義一個(gè)函數(shù),對(duì)給定的(ip,port)進(jìn)行掃描,看其是否能連接成功。deftcpPortScan(ip,port,openPort):sock=socket.so
系統(tǒng) 2019-09-27 17:55:41 1755
python動(dòng)態(tài)語(yǔ)言在運(yùn)行時(shí)可以改變類的結(jié)構(gòu),添加屬性,添加方法刪除函數(shù)添加屬性:就是在類的結(jié)構(gòu)以外添加屬性也可以修改1.添加對(duì)象屬性(1)p1.age="123"#使用對(duì)象名創(chuàng)建(2)setattr(p1,"home","陽(yáng)光小區(qū)")#使用內(nèi)置方法設(shè)置和取得屬性值getattr(p1,"home")#取得新增屬性的值2.添加類屬性(1)Preson.ID=111112#使用類名創(chuàng)建添加方法:3.添加對(duì)象方法importtypesdefstudy(self
系統(tǒng) 2019-09-27 17:55:39 1755
最近新需求來(lái)了,要給系統(tǒng)增加幾個(gè)資源權(quán)限。盡量減少代碼的改動(dòng)和程序的復(fù)雜程度。所以還是使用裝飾器比較科學(xué)之前用了一些登錄驗(yàn)證的現(xiàn)成裝飾器模塊。然后仿寫(xiě)一些用戶管理部分的權(quán)限裝飾器。比如下面這種defpermission_required(permission):defdecorator(f):@wraps(f)defdecorated_function(*args,**kwargs):ifnotcurrent_user.can(permission):ab
系統(tǒng) 2019-09-27 17:55:30 1755
目錄一、概論二、方法論三、實(shí)踐能力一、概論深入理解Python語(yǔ)言實(shí)例2:Python蟒蛇繪制模塊1:turtle庫(kù)的使用turtle程序語(yǔ)法元素分析二、方法論P(yáng)ython語(yǔ)言及海龜繪圖體系三、實(shí)踐能力初步學(xué)會(huì)使用Python繪制簡(jiǎn)單圖形
系統(tǒng) 2019-09-27 17:55:09 1755
鎖在使用用的過(guò)程中需要導(dǎo)入threading模塊的Lock類使用鎖:當(dāng)多個(gè)線程幾乎同時(shí)修改某一個(gè)共享數(shù)據(jù)的時(shí)候,需要進(jìn)行同步控制線程同步能夠保證多個(gè)線程安全訪問(wèn)競(jìng)爭(zhēng)資源,最簡(jiǎn)單的同步機(jī)制是引入互斥鎖。互斥鎖為資源引入一個(gè)狀態(tài):鎖定/非鎖定。鎖的語(yǔ)法創(chuàng)建鎖、鎖定鎖、釋放鎖fromthreadingimportLock#創(chuàng)建鎖mutex=Lock()#獲取鎖(上鎖)mutex.acquire()#釋放鎖(解鎖)mutex.release()在鎖定鎖的過(guò)程中ac
系統(tǒng) 2019-09-27 17:55:04 1755
Python語(yǔ)言有一個(gè)比較Pythonic的功能,也是一個(gè)具有很強(qiáng)大功能的特性,那就是裝飾器。1.Python裝飾器的原理Python中的裝飾器是通過(guò)利用了函數(shù)特性的閉包實(shí)現(xiàn)的,所以我們需要了解Python閉包的原理,以及函數(shù)的功能特性。1.1函數(shù)特性函數(shù)作為變量傳遞defadd(x):returnx+1a=add(5)print(a)#運(yùn)行結(jié)果:6函數(shù)作為參數(shù)傳遞defadd(x):returnx+1defexecute(f):returnf(3)pri
系統(tǒng) 2019-09-27 17:54:59 1755
目錄一、進(jìn)程同步二、為什么需要進(jìn)程同步三、Python中實(shí)現(xiàn)進(jìn)程同步四、多進(jìn)程模擬同時(shí)搶票4.1通過(guò)鎖控制進(jìn)程資源訪問(wèn)總結(jié)盡管并發(fā)編程讓我們能更加充分的利用IO資源,但是也給我們帶來(lái)了新的問(wèn)題:當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,就會(huì)引發(fā)數(shù)據(jù)安全或順序混亂問(wèn)題。一、進(jìn)程同步多個(gè)進(jìn)程同時(shí)執(zhí)行,為了相互制約各進(jìn)程對(duì)資源的訪問(wèn),使得各個(gè)進(jìn)程的執(zhí)行相互同步。在我的理解里,進(jìn)程同步也算是進(jìn)程間通訊(ipc)的一種手段。二、為什么需要進(jìn)程同步多進(jìn)程會(huì)引發(fā)搶占資源的問(wèn)題
系統(tǒng) 2019-09-27 17:54:58 1755
本文實(shí)例講述了python實(shí)現(xiàn)無(wú)證書(shū)加密解密的方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:無(wú)證書(shū)加密就是雙方不需要維護(hù)證書(shū),加密與解密只需要雙方約定一個(gè)key就可以,無(wú)證書(shū)加解密的方式應(yīng)用更廣泛一些,python官方也有這方面的相關(guān)例子說(shuō)明,地址是:https://pypi.python.org/pypi/pycrypto,主要用的是fromCrypto.CipherimportAES這個(gè)模塊,代碼如下:復(fù)制代碼代碼如下:'''/***AES加密字符串*
系統(tǒng) 2019-09-27 17:54:57 1755
用Python來(lái)編寫(xiě)網(wǎng)站,必須要能夠通過(guò)python操作數(shù)據(jù)庫(kù),所謂操作數(shù)據(jù)庫(kù),就是通過(guò)python實(shí)現(xiàn)對(duì)數(shù)據(jù)的連接,以及對(duì)記錄、字段的各種操作。上一講提到的那種操作方式,是看官直接通過(guò)交互模式來(lái)操作數(shù)據(jù)庫(kù)。安裝python-MySQLdb要想通過(guò)python來(lái)操作數(shù)據(jù)庫(kù),還需要在已經(jīng)安裝了mysql的基礎(chǔ)上安裝一個(gè)稱之為mysqldb的庫(kù),它是一個(gè)接口程序,python通過(guò)它對(duì)mysql數(shù)據(jù)實(shí)現(xiàn)各種操作。在編程中,會(huì)遇到很多類似的接口程序,通過(guò)接口程序?qū)?/span>
系統(tǒng) 2019-09-27 17:54:55 1755
單線程執(zhí)行python的內(nèi)置模塊提供了兩個(gè)內(nèi)置模塊:thread和threading,thread是源生模塊,threading是擴(kuò)展模塊,在thread的基礎(chǔ)上進(jìn)行了封裝及改進(jìn)。所以只需要使用threading這個(gè)模塊就能完成并發(fā)的測(cè)試實(shí)例創(chuàng)建并啟動(dòng)一個(gè)單線程importthreadingdefmyTestFunc():print("我是一個(gè)函數(shù)")t=threading.Thread(target=myTestFunc)#創(chuàng)建一個(gè)線程t.start()
系統(tǒng) 2019-09-27 17:54:54 1755