Python-scapy: wie man Port-Nummern zu Service-Namen übersetzt?

Eine TCP-Ebene in der Scapy enthält Quellport:

>>> a[TCP].sport 80 

Gibt es eine einfache Möglichkeit, Portnummer in Service Name umzuwandeln? Ich habe gesehen, dass Scapy TCP_SERVICES und UDP_SERVICES hat, TCP_SERVICES UDP_SERVICES zu übersetzen, aber

  • Warum ist python Wiederverwendung einer Klasse Instanz in Funktion
  • Format schwimmt mit Standard-Json-Modul
  • Matplotlib automatische Legende außerhalb Plot
  • Konvertieren Sie Hex-String zu int in Python
  • Django Performance-Test-Suite, die über Metriken berichten (db-Abfragen etc.)
  • Wie benutze ich einen regulären Ausdruck, um einen Namen zu erfüllen?
  •  print TCP_SERVICES[80] # fails print TCP_SERVICES['80'] # fails print TCP_SERVICES.__getitem__(80) # fails print TCP_SERVICES['www'] # works, but it's not what i need 80 

    Jemand weiß, wie kann ich Häfen an Dienstleistungen abbilden?

    Vielen Dank im Voraus

  • Anhängen der Rückgabewerte an einen Satz von Listen direkt
  • Setzen Sie cellrenderertext Vordergrundfarbe ein, wenn eine Zeile markiert ist
  • Lesen 32 Bit signiert ieee 754 floating Punkte aus einer Binärdatei mit Python?
  • Gibt es ein Äquivalent in C von python's set ()?
  • Wann erstellt Python neue Listenobjekte für leere Listen?
  • Statische Variable in Python?
  • 5 Solutions collect form web for “Python-scapy: wie man Port-Nummern zu Service-Namen übersetzt?”

    Wenn dies etwas ist, was Sie häufig tun müssen, können Sie eine umgekehrte Zuordnung von TCP_SERVICES :

     >>> TCP_REVERSE = dict((TCP_SERVICES[k], k) for k in TCP_SERVICES.keys()) >>> TCP_REVERSE[80] 'www' 

    Pythons Steckdosenmodul wird das machen:

     >>> import socket >>> socket.getservbyport(80) 'http' >>> socket.getservbyport(21) 'ftp' >>> socket.getservbyport(53, 'udp') 'domain' 

    Dies kann für Sie arbeiten (filtern das Wörterbuch basierend auf dem Wert):

     >>> [k for k, v in TCP_SERVICES.iteritems() if v == 80][0] 'www' 

    Wenn Sie unix oder linux verwenden, gibt es eine Datei / etc / services, die diese Mapping enthält.

    Ich habe eine gute Lösung gefunden, die ein anderes dict self.MYTCP_SERVICES füllt

     for p in scapy.data.TCP_SERVICES.keys(): self.MYTCP_SERVICES[scapy.data.TCP_SERVICES[p]] = p 
    Python ist die beste Programmiersprache der Welt.