使用 Pypcap 監(jiān)聽電腦網(wǎng)絡(luò)去向

1.前言:

pypcap 是一個(gè)python lib,它是libpcap 的python版本,libpcap是unix/linux平臺(tái)下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)包,大多數(shù)網(wǎng)絡(luò)監(jiān)控軟件都以它為基礎(chǔ)。Libpcap可以在絕大多數(shù)類unix平臺(tái)下工作.

2.安裝:

本例以MAC平臺(tái)為例,使用pip 工具直接安裝

命令行:pip install pypcap

3.代碼Demo:

import pcap
import time

import requests


def addr(pkt, offset):
    '''
    獲取ip地址
    :param pkt:
    :param offset:
    :return:
    '''
    rets = ""
    for i in range(offset, offset + 4):
        rets = rets + '.' + (str((pkt[i])))
    return rets.strip('.')


def getjson(ip):
    '''
    獲取ip地址對應(yīng)的地區(qū)信息
    :param ip:
    :return:
    '''
    url_params = {'ip': ip}  # 字典傳遞參數(shù),如果值為None的鍵不會(huì)被添加到url中
    r = requests.get('http://ip.taobao.com/service/getIpInfo.php', params=url_params)
    return r.json()


def getAddres(target):
    '''
    獲取地址詳情
    :param target:
    :return:
    '''

    targetStr = target['data']['country'] + target['data']['region'] + target['data']['city']
    return targetStr


if __name__ == '__main__':
    sniffer = pcap.pcap(name=None, promisc=True, immediate=True, timeout_ms=50)#開始監(jiān)聽網(wǎng)絡(luò)
    for ts, pkt in sniffer:
        src = addr(pkt, sniffer.dloff + 12)  # 獲取源地址
        dst = addr(pkt, sniffer.dloff + 16)  # 獲取目標(biāo)地址
        date = time.strftime("%Y-%m-%d %H:%M:%S")  # 打印地址

        try:
            if '39.156.66.14' == dst.strip():
                targetStr = target + "(百度)"
            else:
                target = getjson(dst)  # 查地址
                targetStr = target + "(" + getAddres(target) + ")"  # 把地址變成可讀去更好的字符串
            print('time:%s\t start: %-16s\t target: %-16s' % (date, src, targetStr))  # 打印解析后的地址
        except Exception as err:
            # print("404")
            print('time:%s\t start: %-16s\t target: %-16s' % (date, src, dst))  # 打印地址
            pass

本Demo,通過libpcap的Sniffer API獲取網(wǎng)絡(luò)請求的原始地址和目標(biāo)地址,如果你有一個(gè)完善的IP庫的話,可以匹配出網(wǎng)絡(luò)去了那個(gè)網(wǎng)站(比如這里演示了請求百度),再通過調(diào)用淘寶的API(調(diào)用你太頻繁會(huì)導(dǎo)致404錯(cuò)誤)解析出目標(biāo)地址的區(qū)域:
4.運(yùn)行效果

這里調(diào)用淘寶API太頻繁了所以不給解析ip目標(biāo)地址,只能看到IP,第一次運(yùn)行的話,能解析出來具體地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡介】: Python 是一個(gè)...
    _小老虎_閱讀 6,338評論 0 10
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,127評論 1 3
  • 其實(shí)我想問問?為什么人與人之間會(huì)有矛盾和沖突,尤其是近的關(guān)系的人,人心究竟都在想著其它人應(yīng)該怎么樣對我,因?yàn)槲沂窃?..
    孫貴云閱讀 383評論 0 2
  • 宗薩蔣楊仁波切在這本書中提出了如何一個(gè)人是否真正的佛教徒,取決于是否理解并信奉四個(gè)方面:諸行無常、諸漏皆苦、諸法無...
    六爸啦啦啦閱讀 443評論 0 0
  • 寫給自己:盡管今天出差去烏蘇,知道早早就要出門,回到家一定是比較晚了。這一切都是預(yù)知的,所以提前起床提前完成功課心...
    快樂天使_快樂飛翔閱讀 308評論 0 0

友情鏈接更多精彩內(nèi)容