Как я могу получить живые установленные UDP-соединения с Python, используя psutil - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь получить IP-адреса назначения (удаленного хоста), подключенные к моей машине, которые используют протокол UDP, но я получаю нулевые результаты, используя psutil

сценарий, который я написал

import psutil

def GetServerIP():
    PROCNAME = "theprocessname.exe"
    for proc in psutil.process_iter():
        if proc.name() == PROCNAME:
            pinfo = proc.as_dict(attrs=['pid', 'name', 'create_time'])
            pidnumber = pinfo["pid"]
            print("Process is runnging on number: %r" % (pidnumber))           
    for connection in psutil.net_connections(kind='udp4'):
        if pidnumber in connection:
            print(connection.raddr)

GetServerIP()

Сценарий работает для TCP-соединений, но ничего не дает для UDP-соединений, которые установлены на моем локальном компьютере.

Я прочитал документацию по psutil, но до сих пор не могу понять, почему он не дает никаких результатов по UDP

Я могу убедиться, что установленные UDP-пакеты отправляются и принимаются с использованием wireshark

, если psutil не работает с UDP, есть ли альтернативное решение

1 Ответ

0 голосов
/ 21 октября 2019

Похоже, что psutil не был правильным решением и подходящим путем, оказалось, что UDP-соединения не устанавливаются как TCP, поэтому вместо этого я переключился на python scapy для захвата UDP-пакетов, и это помогло мне определить IP-адрес назначения

...