利用Python實(shí)現(xiàn)原創(chuàng)工具的Logo與Help
前言
當(dāng)我們使用Python完成自己的原創(chuàng)的工具時(shí),比如:端口掃描、弱口令爆破等。你是否想過添加自己的Logo,以及簡要的幫助信息?
如下:
Sqlmap的Logo
Nmap的說明文檔
本文接下來介紹Linux下的figlet工具,以及Python用于解析命令行參數(shù)和選項(xiàng)的標(biāo)準(zhǔn)模塊argparse。
Figlet使用
figlet是Linux下的一款工具,用于將輸入的字符串輸出為各種奇形怪狀的Logo??捎糜谧珜懽约旱墓ぞ吆螅迦氪碇约涸瓌?chuàng)工具的Logo標(biāo)識(shí)。
安裝
sudo apt-get install figlet
目錄文件
flc為控制文件,flf為字體模板文件。
常用語法
figlet AnonySec -f standard.flf
① AnonySec 為我們要生成Logo的字符串
② -f standard.flf 為選擇不同風(fēng)格的模板
效果展示
【注:其他使用參數(shù),請(qǐng)自行查閱】
Argparse模塊使用
argparse是python用于解析命令行參數(shù)和選項(xiàng)的標(biāo)準(zhǔn)模塊,向原創(chuàng)工具中加入幫助信息,編寫可讀性非常好的程序。
大家對(duì)linux下的工具一定有印象吧,使用- -help查看幫助文檔。此模塊正是打造這樣的幫助文檔。
導(dǎo)入模塊
from argparse import ArgumentParser
可以直接import argparse,只不過寫代碼的時(shí)候比較麻煩。
實(shí)例化對(duì)象
parser = ArgumentParser()
實(shí)例化一個(gè)ArgumentParser類的對(duì)象
添加說明文檔
parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")
上述這行代碼的add_argument()方法是向parser中添加。
① -i 輸入時(shí)緊跟此參數(shù)的一個(gè)字符串為此參數(shù)的值
② dest=“ip” 將 -i 后面的字符串賦值給 ip
③ help=“******” 此參數(shù)的說明信息
parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")
① type=“int” 此參數(shù)的默認(rèn)類型為int型
② default=100 當(dāng)不輸入此參數(shù)時(shí),此參數(shù)默認(rèn)為100
賦值
args = parser.parse_args()
將上述添加的參數(shù)進(jìn)行賦值。
完整代碼
parser = ArgumentParser() parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1") parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number") args = parser.parse_args() print 'The ip is: %s .' %args.ip print 'The thread number is: %s .' %args.thread_count
print是用來測試是否賦值成功。若賦值成功,就可以調(diào)用args.ip與args.thread_count來使用了。
【注:其他使用參數(shù),請(qǐng)自行查閱】
附:Base64-Logo
logo_code = 'ICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgICAgICAgICAgIAogICAvIFwgICBfIF9fICAgX19fICBfIF9fICBfICAgXy8gX19ffCAgX19fICBfX18gCiAgLyBfIFwgfCAnXyBcIC8gXyBcfCAnXyBcfCB8IHwgXF9fXyBcIC8gXyBcLyBfX3wKIC8gX19fIFx8IHwgfCB8IChfKSB8IHwgfCB8IHxffCB8X19fKSB8ICBfXy8gKF9fIAovXy8gICBcX1xffCB8X3xcX19fL3xffCB8X3xcX18sIHxfX19fLyBcX19ffFxfX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX18vCgpQb3dlcmVkIGJ5IEFub255U2VjCkJsb2cnczogaHR0cDovL3d3dy5hbm9ueXNlYy5jbg==' logo = base64.b64decode(logo_code) print logo
logo_code是事先使用base64加密過的,目的是讓Logo的嵌入不顯得那么突兀。只需要base64解密一次,就可以將它輸出至屏幕。
實(shí)例效果圖
附源碼
# coding:utf-8 # powered by AnonySec import base64 from argparse import ArgumentParser logo_code = 'ICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgICAgICAgICAgIAogICAvIFwgICBfIF9fICAgX19fICBfIF9fICBfICAgXy8gX19ffCAgX19fICBfX18gCiAgLyBfIFwgfCAnXyBcIC8gXyBcfCAnXyBcfCB8IHwgXF9fXyBcIC8gXyBcLyBfX3wKIC8gX19fIFx8IHwgfCB8IChfKSB8IHwgfCB8IHxffCB8X19fKSB8ICBfXy8gKF9fIAovXy8gICBcX1xffCB8X3xcX19fL3xffCB8X3xcX18sIHxfX19fLyBcX19ffFxfX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX18vCgpQb3dlcmVkIGJ5IEFub255U2VjCkJsb2cnczogaHR0cDovL3d3dy5hbm9ueXNlYy5jbg==' logo = base64.b64decode(logo_code) print logo print '' parser = ArgumentParser() parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1") parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number") args = parser.parse_args() #parser.print_help() print 'The ip is: %s .' %args.ip print 'The thread number is: %s .' %args.thread_count print ''
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
python3.8.1+selenium實(shí)現(xiàn)登錄滑塊驗(yàn)證功能
這篇文章主要介紹了python3.8.1+selenium解決登錄滑塊驗(yàn)證的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼
這篇文章主要介紹了Django跨域請(qǐng)求原理及實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11python標(biāo)準(zhǔn)庫之time模塊的語法與簡單使用
在平常的代碼中,我們常常需要與時(shí)間打交道,那么在Python中,與時(shí)間處理有關(guān)的模塊就包括:time、datetime以及calendar,這篇文章主要給大家介紹了關(guān)于python標(biāo)準(zhǔn)庫之time模塊的語法與使用的相關(guān)資料,需要的朋友可以參考下2021-08-08pytorch加載自定義網(wǎng)絡(luò)權(quán)重的實(shí)現(xiàn)
今天小編就為大家分享一篇pytorch加載自定義網(wǎng)絡(luò)權(quán)重的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python提高運(yùn)行速度工具之Pandarallel的使用教程
為了提高運(yùn)行速度,我們一般會(huì)采用多進(jìn)程的方式。而常見的方案對(duì)于普通python玩家來說都不是特別友好,怎樣才能算作一個(gè)友好的并行處理方案?本文就來和大家講講pandarallel的使用2022-09-09Python中if __name__ == "__main__"詳細(xì)解釋
這篇文章主要介紹了Python中if __name__ == "__main__"詳細(xì)解釋,需要的朋友可以參考下2014-10-10Python實(shí)現(xiàn)的樸素貝葉斯算法經(jīng)典示例【測試可用】
這篇文章主要介紹了Python實(shí)現(xiàn)的樸素貝葉斯算法,結(jié)合實(shí)例形式詳細(xì)分析了Python實(shí)現(xiàn)與使用樸素貝葉斯算法的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06