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