作者:Eason_LYC
不放棄,不為別的,只想活成自己心中的樣子~
領(lǐng)域:WEB安全、網(wǎng)絡(luò)攻防
關(guān)注WEB安全、網(wǎng)絡(luò)攻防。我的專(zhuān)欄文章知識(shí)點(diǎn)全面細(xì)致,邏輯清晰、結(jié)合實(shí)戰(zhàn),讓你在學(xué)習(xí)路上事半功倍,少走彎路!
博客描述:
一個(gè)人的價(jià)值,在于他所擁有的,而不是他會(huì)的。所以可以不學(xué)無(wú)數(shù),但不能一無(wú)所有!
個(gè)人社區(qū):極樂(lè)世界-技術(shù)至上
我們追求技術(shù)至上,這是我們理想中的極樂(lè)世界~(關(guān)注我即可加入社區(qū))
背景
如何才能快速提升自己的編寫(xiě)腳本的能力呢,我之前文章中說(shuō)過(guò)“為了學(xué)習(xí)而學(xué)習(xí),永遠(yuǎn)學(xué)不好”。所以本文以我在實(shí)際工作中的真實(shí)場(chǎng)景為例,講解自制小工具的思路。
每個(gè)人在生活中都會(huì)遇到各種問(wèn)題,將問(wèn)題抽象梳理出來(lái),利用已掌握或臨時(shí)自學(xué)拼湊的編程知識(shí),來(lái)實(shí)現(xiàn)自己的目標(biāo),你將事半功倍,能力提升水到渠成。
在實(shí)際安全工作中,經(jīng)常會(huì)從各種渠道獲取大量IP,在進(jìn)行分析前,首先需要對(duì)IP進(jìn)行如下幾項(xiàng)處理
- IP是否有重復(fù)
- IP是否有錯(cuò)誤
- IP歸屬地是哪里
- IP有多少?lài)?guó)內(nèi)或者國(guó)外的
- …
上述幾件事看上去很簡(jiǎn)單,網(wǎng)上也有現(xiàn)成的工具或網(wǎng)站可以使用。但是在實(shí)際工作中往往IP數(shù)量少則上萬(wàn)個(gè),多則十幾萬(wàn),甚至是幾十萬(wàn)。而且往往要半小時(shí)內(nèi)出結(jié)果。面對(duì)這樣的實(shí)際工作場(chǎng)景,人工或利用半成品工具明顯不再合適。
為了在單位繼續(xù)干下去,也不想累的的猝死,只能自己動(dòng)手開(kāi)發(fā)了一個(gè)小工具。下面就將這個(gè)小工具介紹給大家。
成果
是的,沒(méi)有看錯(cuò),先看成果,大家才有繼續(xù)看下去的動(dòng)力不是?
一共7萬(wàn)多個(gè)原始IP,下面幾個(gè)數(shù)據(jù)一加等于去重后的IP數(shù)。詳細(xì)功能數(shù)據(jù)如下:
- 軟件自動(dòng)去重
- 查詢(xún)歸屬地
- 按國(guó)內(nèi)國(guó)外分類(lèi)匯總
- 對(duì)未查詢(xún)到和錯(cuò)誤IP進(jìn)行匯總
- 結(jié)果自動(dòng)保存為xlsx格式,方便直接匯報(bào)
- 總耗時(shí)20s,這是封裝exe可執(zhí)行文件后的運(yùn)行時(shí)間,腳本直接運(yùn)行,相同數(shù)據(jù)10s左右能完成。
最終excel成果:
以上就是軟件的最終成果,不知各位看官是否滿(mǎn)意,至少自制這個(gè)小工具后,讓我工作輕松不少。
如何使用
工具設(shè)計(jì)之出就明確,一定要非常容易使用,力求0門(mén)檻傻瓜式使用。
打開(kāi)工具,僅有三個(gè)文件,一個(gè)程序,一個(gè)使用說(shuō)明,一個(gè)文件夾,作用見(jiàn)下圖
使用的要求只有如下兩條:
- 將你需要處理的大量IP,在txt格式文件中保存為一列即可,名字最好取
ip.txt
,然后放到db文件夾中就好了。如下圖
2. 雙擊exe運(yùn)行程序,結(jié)果會(huì)自動(dòng)生成result.xlsx
。雙擊后運(yùn)行界面如下
運(yùn)行過(guò)程中的界面
結(jié)果生成界面
步驟已經(jīng)設(shè)計(jì)的很簡(jiǎn)略了,方便易上手有沒(méi)有
使用查詢(xún)庫(kù)文件
本文使用歸屬地查詢(xún)的庫(kù),是qqwry。這個(gè)可以手動(dòng)從github上下載最新的版本,替換即可。
其實(shí)有更好的庫(kù),但是qqwry真的很穩(wěn),綜合考慮就用這個(gè)了。
其實(shí)軟件自帶的這個(gè),已經(jīng)滿(mǎn)足日常使用了。
工具代碼分析
本工具使用python編寫(xiě),后續(xù)使用Pyinstaller工具,將腳本生成exe可執(zhí)行程序。
- 原始腳本中,引用的庫(kù)只有3個(gè)
from qqwry import QQwry # 歸屬地查詢(xún)庫(kù),實(shí)現(xiàn)核心功能
import xlsxwriter # 生成、操作xlsx的庫(kù),將結(jié)果歸類(lèi)匯總,已特定字段輸出到文檔中,形成最終成果。
import time # 用于計(jì)時(shí),統(tǒng)計(jì)執(zhí)行一次任務(wù)運(yùn)行的時(shí)間
- 根據(jù)上文的梳理,我們的需求很明確。所以實(shí)現(xiàn)方法和思路如下:
def input_txt():
"""
獲取輸入IP源文件
1、文件路徑,默認(rèn)為.\db\ip.txt
2、打開(kāi)文件,以行形式讀取內(nèi)容(單個(gè)ip)raw_ip,另外統(tǒng)計(jì)原始行數(shù) raw_num
3、初步過(guò)濾,去掉每行ip首位多余的空格,去重,統(tǒng)計(jì)去重后行數(shù) file_num
return raw_ip, raw_num, file_num
"""
pass
def check_input(raw_ip):
"""
對(duì)各種異常輸入的處理,并將異常IP統(tǒng)計(jì)到error_ip列表中。目前能是別的異常情況如下【根據(jù)實(shí)際,持續(xù)更新】
1、IP組成不是4個(gè)數(shù)
2、任意一個(gè)數(shù)字出現(xiàn)4位數(shù)
3、任意一位數(shù)出現(xiàn)異常(非數(shù)字,0-255之外,非整數(shù)...)
過(guò)濾后再對(duì)所有結(jié)果進(jìn)行去重,無(wú)問(wèn)題IP放到ip列表中
return ip, error_ip
"""
pass
def output_excel(list_home, list_foreign, list_unknown, list_error):
"""
xlsxwriter這個(gè)庫(kù)使用方式比較固定,根據(jù)自己需要設(shè)置excel各字段內(nèi)容和排版
"""
pass
def ip_search():
"""
主程序,邏輯是調(diào)用上述各方法,獲取正常ip后,再調(diào)用qqwry庫(kù),查詢(xún)ip歸屬地查詢(xún)。
另外,cmd中輸出內(nèi)容和格式我也在這里進(jìn)行的定制。
"""
pass
if __name__ == '__main__':
start = time.time()
ip_search()
end = time.time()
print('耗時(shí): ', round(end - start, 0))
input("please input any key to exit!")
整個(gè)腳本算上空行,一共才164行,真是短小精悍。但是在工作中真的管用。
就像我之前文章中說(shuō)過(guò)的那句話“學(xué)以致用才是關(guān)鍵,為了學(xué)習(xí)而學(xué)習(xí),永遠(yuǎn)學(xué)不好”。
不足之處
自己寫(xiě)的軟件,不足之處簡(jiǎn)直太了解了,那我就自爆家丑了。
- 無(wú)法識(shí)別IPv6
- 錯(cuò)誤處理中,如原IP文件中出現(xiàn)中文句號(hào)
。
則會(huì)出現(xiàn)錯(cuò)誤不再執(zhí)行,這個(gè)我后續(xù)完善下 - 歸屬地查詢(xún)庫(kù)只適用單一的qqwry,太low了
- 不支持自動(dòng)更新查詢(xún)庫(kù),這個(gè)主要考慮網(wǎng)安工作環(huán)境往往不允許連外網(wǎng),小工具安全起見(jiàn)也不要有連接外網(wǎng)的功能。
反思下上面的問(wèn)題,其實(shí)都應(yīng)該早早修正。對(duì)異常輸入不斷優(yōu)化,增加穩(wěn)定性;庫(kù)改為多個(gè)常用主流查詢(xún)庫(kù),可根據(jù)實(shí)際情況選擇用哪個(gè);自動(dòng)更新\手動(dòng)更新,可人工選擇。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-780927.html
視頻演示(各位看官如滿(mǎn)意請(qǐng)對(duì)視頻三連支持,您的三連是我創(chuàng)作下去的動(dòng)力!)
【自制小工具】快速批量查詢(xún)IP歸屬地(自動(dòng)去重、按國(guó)內(nèi)外匯總,并智能識(shí)別出錯(cuò)誤IP)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-780927.html
到了這里,關(guān)于【自制小工具】快速批量查詢(xún)IP歸屬地(自動(dòng)去重、按國(guó)內(nèi)外匯總,并智能識(shí)別出錯(cuò)誤IP)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!