iOS / MacOS iMessage 的用户代理字符串是什么?

What is the user agent string for iOS / MacOS iMessage?

我正在解析 s3 日志以识别来自 iMessage 预览的请求(在 Mac OS Sierra 和 iOS 10 上)。

UA 字符串的常见类型很少,但我分不清哪些是来自浏览器还是来自 imessage。我希望它是来自 Safari 的独特 UA:

  1. `AppleCoreMedia/1.0.0.14B100 (iPhone;U;CPUOS10_1_1喜欢MacOS X; en_us)

^ 一定是 iOS Safari,对吧?

2.MobileSMS/1.0 CFNetwork/808.1.4 Darwin/16.1.0`

^ 我认为 MobileSMS 意味着 imessage(希望如此)

  1. Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.1.32 (KHTML, like Gecko) Mobile/14B100 Twitter for iPhone

^ 通过 webkit webview 推特?

  1. Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/54.0.2840.91 Mobile/14B100 Safari/602.1

^更多iOSChrome(我看到你CriOS)

  1. Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B100 Safari/602.1

^ 更多 iOS Chrome?

  1. Twitter/5002568 CFNetwork/760.6.3 Darwin/15.6.0 (x86_64)

^ 推特

我在尝试 re-route iMessage 爬虫到 non-angular 页面时遇到了同样的问题,该页面将为它并在此过程中发现了这个问题。我想我会写一个答案,因为我现在已经找到了。 Apple 的文档只提到 ...(Applebot/x.x) User-Agent 而不是 正确的。我在互联网上没有找到任何东西,所以我只记录了 public 服务器上一个文件的流量,并通过 iMessage 共享了 link。在我收到的日志文件中:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0

当我修改我的 RegEx 以适应这个 User-Agent 时,iMessage 爬虫终于 re-routed 到了正确的位置。

就是这样,它可能会随时更改,恕不另行通知,因为据我所知,它不存在于任何官方 Apple 文档中,但我希望这仍然对某人有所帮助:)

使用此正则表达式识别来自 IMsg 爬虫的请求。

(Twitterbot(.*)facebookexternalhit)|(facebookexternalhit(.*)Twitterbot)

我已经测试过了,效果很好。