• STATISTIQUES
  • Il y a eu un total de 4 membres et 6369 visiteurs sur le site dans les dernières 24h pour un total de 6 373 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 609
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Framework Metasploit
    Le Framework Metasploit est un logiciel gratuit, open source de tests de pénétration développ&ea...
    Vulnérabilités
    [EN] PHPFreaks
    PHPFreaks est un site dédié à l'apprentissage et l'enseignement du PHP. Ici vous trouver...
    Programmation
    [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [FR] PHP Débutant
    Apprendre le PHP par l'exemple, facilement et simplement. Réservé d'abord aux débutants....
    Programmation
    [EN] Rosecode
    Programming: 36, Math: 29, Probability: 5, Sequence: 7, Crypto: 4, Brainf**k: 13, TimeRace: 4, Hack: 9
    Challenges
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [FR] WeChall
    Audio: 3, Coding: 11, Cracking: 9, Crypto: 18, Encoding: 11, Exploit: 44, Forensics: 1, Fun: 6, HTTP: 6, Image: 8, Java:...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Python] Quick'n'dirty stats sniffer
19-05-2014, 10h44
Message : #1
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
[Python] Quick'n'dirty stats sniffer
même le titre est quick'n'dirty, ce sera d'ailleurs le thème du jour pour ma part...

donc un ptit code un peu dégueu mais à peu près fonctionnel pour afficher des stats simples sur les protocoles utilisés sur votre réseau
nécéssite pypcap et dpkt, tous deux probablement présents dans vos dépots

Code PYTHON :
#!/usr/bin/env python

import getopt, sys, dpkt, pcap, time

def depile(p):
        name = [`type(p)`.split('\'')[1].split('.')[-1]] # hack degueu ou "quick'n'dirty" en l'occurence
        name = (name[0] != 'str') and name or ''
        if hasattr(p, 'data'):
                name += depile(p.data)
        return name

def main():
        pc = pcap.pcap('eth0')
        decode = {
                pcap.DLT_EN10MB:dpkt.ethernet.Ethernet,
                pcap.DLT_LINUX_SLL:dpkt.sll.SLL  # dans le cas d'un vz par exemple
        }[pc.datalink()]

        protocols_counter = {}
        t1 = t2 = 0
        try:
                for ts, pkt in pc:
                        for proto in depile(decode(pkt)):
                                # on update les compteurs de protocoles
                                if proto in protocols_counter.keys():
                                        protocols_counter[proto] += 1
                                else:
                                        protocols_counter[proto] = 1
                        t1 = time.time()
                        if t1 - t2 >= 1:
                                print '\033[0;0f' + (' '*30 + '\n')*15 + '\033[0;0f' # pareil, hack degueu/quick'n'dirty clear screen
                                nrecv, ndrop, nifdrop = pc.stats()
                                for proto, nb in sorted(protocols_counter.items(), key=lambda i: i[1], reverse=True):
                                        print '%5.1f%% %s' % (nb*100.0/nrecv, proto)
                                t2 = t1
        except KeyboardInterrupt:
                return

if __name__ == '__main__':
        main()


au final ça donne un truc qui ressemble à ça en haut à gauche de l'écran, updaté toutes les secondes :
Code :
100.0% Ethernet
  81.1% IP
  81.1% TCP
  17.5% ARP
   0.9% ICMP6
   0.9% IP6
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (2) -1 (1) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 1,099 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 208 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 266 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 152 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 518 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 346 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 244 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 211 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 159 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 469 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut