从 NEPacketTunnelFlow 和 sourceAppAuditToken 获取进程 ID (pid)(始终为 nil)

问题描述 投票:0回答:1

我在 MacOS 上使用 packetTunnelProvider 实现了每个应用程序的 VPN,功能齐全。我想从 sourceAppAuditToken 获取 PID,但它总是为零。

这是代码:

self.packetFlow.readPacketObjects { packets in
            for packet in packets {                
                if let auditToken = packet.metadata!.sourceAppAuditToken {
                  log.debug("ok")
                } else {
                  log.debug("No audit Token")
                }
            }
        }

我读了很多关于这个问题的答案,但都在 NEFilterFlow 上解决了,而且它们实际上不适用于 PacketTunnelFlow

swift macos network-programming networkextension
1个回答
0
投票

请更换

packet.metadata!.sourceAppAuditToken

packet.metadata?.sourceAppUniqueIdentifier 

并验证它是否为零。

if packet.metadata?.sourceAppUniqueIdentifier == nil { 每个应用程序 VPN 未正确实施}

© www.soinside.com 2019 - 2024. All rights reserved.