實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化_第1頁
實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化_第2頁
實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化_第3頁
實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化_第4頁
實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、開源GeoliteCity數(shù)據(jù)庫從IP地址映射至物理地址pygeoip模塊實現(xiàn)對GeoliteCity數(shù)據(jù)庫的查詢Dpkt數(shù)據(jù)包操作工具分析數(shù)據(jù)包開源GeoliteCity數(shù)據(jù)庫的下載與本地保存目錄pcap得到數(shù)據(jù)包的源目IP地址實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化 實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化66.1 實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化6.1實例化pygeoip模塊的GeoIP類實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化在本次課程中,我們將實現(xiàn)從pcap數(shù)據(jù)包中讀取數(shù)據(jù)包的源IP地址和目的I

2、P地址并將它們轉(zhuǎn)換為物理地址。最后程序的效果如圖所示。實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化首先我們先捕獲網(wǎng)卡上的數(shù)據(jù)包,此處使用tcpdump進行數(shù)據(jù)包捕獲。在終端輸入:tcpdump -w test.pcap -i eth0在捕獲足夠的數(shù)據(jù)包后,使用Ctrl+C終止程序,此時網(wǎng)卡上的數(shù)據(jù)包被保存到test.pcap中。實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化接下來下載GeoliteCity的數(shù)據(jù)庫并解壓數(shù)據(jù)庫文件到系統(tǒng)中。將test.pcap和GeoLiteCity.dat放到同一目錄下。實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化環(huán)境準備完成后開始編寫代碼。將需求拆分成多個子模塊:需要將數(shù)據(jù)包的源IP地址和目的I

3、P地址轉(zhuǎn)換為物理地址,因此可以把將IP地址轉(zhuǎn)換為物理地址的功能抽取出來作為一個方法,這個方法傳入IP地址,返回物理地址,如果IP地址是一個內(nèi)網(wǎng)地址,則返回“內(nèi)網(wǎng)地址”。實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化先編寫IP地址轉(zhuǎn)換模塊,先導入pygeoip庫,然后加載GeoLiteCity.dat文件,最后調(diào)用record_by_addr即可返回IP地址的物理地址。實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化import pygeoipdef getGeoInfo(ip): gi = pygeoip.GeoIP(GeoLiteCity.dat) rec = gi.record_by_addr(ip) return 內(nèi)

4、網(wǎng)IP if rec = None else reccity實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化測試IP地址轉(zhuǎn)換模塊的功能是否正常:在上述代碼最后添加:print (getGeoInfo(119.29.148.172)print (getGeoInfo(192.168.191.3)實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化在IP地址轉(zhuǎn)換模塊編寫完成后,編寫數(shù)據(jù)包解析模塊,同樣使用一個方法實現(xiàn),方法需要一個參數(shù),表示數(shù)據(jù)包名稱,返回值為源IP地址和目的IP地址列表。實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化測試數(shù)據(jù)包解析模塊的功能是否正常:在上述代碼最后添加:src_list, dst_

5、list = getSrcAndDst(test.pcap)for i in range(len(src_list): print(+ Src: + src_listi + - Dst: + dst_listi)實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化最后編寫主函數(shù),使用數(shù)據(jù)包解析模塊獲得源IP地址和目的IP地址,然后使用IP地址轉(zhuǎn)換模塊將IP地址轉(zhuǎn)換為物理地址。def main(): src_list, dst_list = getSrcAndDst(test.pcap) for i in range(len(src_list): print(+ Src: + src_listi + - Dst: + dst_listi) print(+ Src: + getGeoInfo(src_listi) + - Dst: +getGeoInfo(dst_listi)實現(xiàn)源目IP地址到物理地址的轉(zhuǎn)化在所有模塊都編寫完成后,為了避免亂碼問題,在getGeoInfo方法之前添加設置系統(tǒng)編碼的語句:import sysreload(sys)sys.setdefaultencoding(utf-8)然后在最后調(diào)用主函數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論