我们在IIS上托管了一个Web API,该API用于服务SPA,还用于向iPhone / Android应用提供数据。

我想过滤日志(也许通过用户代理),以便我只能看到来自运行在浏览器(包括移动设备上的浏览器)中的SPA的呼叫,而看不到来自应用程序(SPA和应用程序)的任何直接呼叫使用相同的网址)

我们将所有iis日志转发到splunk中进行分析,因此我们拥有一些非常好的搜索和过滤功能。问题是我不确定要搜索/过滤什么。

最佳答案

这并不像您想象的那么直接。

本质上,您必须通过所有移动客户端的用户代理值来识别它们。移动用户代理(http://www.useragentstring.com/pages/Mobile%20Browserlist/)有很多,因此枚举它们并不是很有效。

使用LogParser(请参见此处的示例,http://blogs.msdn.com/b/jaskis/archive/2008/11/13/logparser-calculate-no-of-hits-for-different-browser-type-from-iis-logs.aspx)可以创建一组规则,以覆盖80%的移动流量,搜索包含以下任何文本的任何用户代理字符串:

Android,webOS,iPhone,iPad,iPod,BlackBerry,IEMobile,Opera,Mini

该列表来自:What is the best way to detect a mobile device in jQuery?

就个人而言,我会尝试让您的API的移动客户端使用其他URL,以使其易于识别,但这显然需要更改代码。

10-07 19:33
查看更多