利用Python實(shí)現(xiàn)原創(chuàng)工具的Logo與Help
前言
當(dāng)我們使用Python完成自己的原創(chuàng)的工具時(shí),比如:端口掃描、弱口令爆破等。你是否想過添加自己的Logo,以及簡(jiǎn)要的幫助信息?
如下:
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是用來測(cè)試是否賦值成功。若賦值成功,就可以調(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é)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
python刪除指定列或多列單個(gè)或多個(gè)內(nèi)容實(shí)例
這篇文章主要介紹了python刪除指定列或多列單個(gè)或多個(gè)內(nèi)容實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python 循環(huán)數(shù)據(jù)賦值實(shí)例
今天小編就為大家分享一篇python 循環(huán)數(shù)據(jù)賦值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python使用PDFMiner解析PDF代碼實(shí)例
本篇文章主要介紹了Python使用PDFMiner解析PDF代碼實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03
Python圖像運(yùn)算之圖像點(diǎn)運(yùn)算與灰度化處理詳解
這篇文章主要介紹了圖像點(diǎn)運(yùn)算的灰度化處理的相關(guān)知識(shí),包括各種灰度算法的實(shí)現(xiàn),以及灰度線性變換和灰度非線性變換。需要的可以參考一下2022-02-02
Python實(shí)現(xiàn)文件按照日期命名的方法
這篇文章主要介紹了Python實(shí)現(xiàn)文件按照日期命名的方法,涉及Python針對(duì)文件的遍歷、讀寫及時(shí)間操作相關(guān)技巧,需要的朋友可以參考下2015-07-07
如何利用Python實(shí)現(xiàn)給Excel表格截圖
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)給Excel表格截圖功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02

