Получение деталей пакета UDP в NEPacketTunnelProvider - PullRequest
0 голосов
/ 04 декабря 2018

Я хочу получить такие данные, как IP-адрес источника и назначения, а также номера портов из пакета UDP, который мы получили в

 self.packetFlow.readPackets { [weak self] (packets: [Data], protocols: [NSNumber]) in
        }

. Я использую следующий код для создания сеанса, так что предполагается, чтопакет будет UDP

self.session = self.createUDPSession(to: NWHostEndpoint(hostname: serverAddress, port: serverPort), from: nil)

, где self.sssion var session: NWUDPSession?

У кого-нибудь есть указания, как это сделать в swift?

Я ищу некоторыекод, поскольку я относительно новичок в вещах на уровне пакетов.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Я бы использовал решение, такое как BinUtils , чтобы распаковать массив пакетов данных, полученных из метода packetFlow.readPackets ().Это IP-пакеты, полученные от ваших приложений.Вам необходимо определить формат для заголовка IP и заголовка UDP самостоятельно.

0 голосов
/ 10 декабря 2018

Мне удалось прочитать адрес источника и назначения, а также порты пакета, используя класс IPPacket в NEKIT коде iOS.Надеюсь, что это поможет кому-то, кто сталкивается с таким сценарием.

...