问题标签 [os-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
288 浏览

nmap - 用于操作系统检测的 snort 规则

我需要为以下数据包编写操作系统检测 (Nmap) 的 snort 规则:

ICMP echo (IE) IE 测试涉及向目标发送两个 ICMP echo 请求数据包。第一个设置了 IP DF 位,服务类型 (TOS) 字节值为零,代码九(即使它应该为零),序列号 295,随机 IP ID 和 ICMP 请求标识符, 和 120 字节的 0x00 用于数据有效负载。

第二个 ping 查询类似,只是使用了四的 TOS (IP_TOS_RELIABILITY),代码为零,发送了 150 字节的数据,并且 ICMP 请求 ID 和序列号从之前的查询值加一。

这两个探针的结果组合成一个包含 R、DFI、T、TG 和 CD 测试的 IE 行。仅当两个探针都引起响应时,R 值才为真 (Y)。T 和 CD 值仅用于对第一个探测的响应,因为它们几乎不可能不同。DFI 是针对这种特殊的双探头 ICMP 案例的定制测试。

这些 ICMP 探测紧跟在 TCP 序列探测之后,以确保共享 IP ID 序列号测试的有效结果(请参阅名为“共享 IP ID 序列布尔 (SS)”的部分)。

我写了以下规则:

这个规则是错误的。我不知道如何纠正它们,如果有人可以帮助我,我会很高兴。提前致谢。

0 投票
2 回答
561 浏览

bash - 操作系统在哪里获取 $OSTYPE 的值

我有一个依赖于$OSTYPE变量值的旧脚本。该脚本所期望的是,在 Solaris 上该值为“SunOS”,而在 AIX 上为“AIX”。对于 Linux,它会根据大写值以“LINUX”开头的正则表达式检查变量。

我尝试从 Jenkins 运行此脚本,发现值不同:Solaris 返回“solaris2.11”,而 AIX 返回“aix7.1.0.0”。我echo $OSTYPE在 Jenkins 运行脚本的完全相同的服务器上运行命令,而我得到的是“SunOS”/“AIX”。

所以我的主要问题是:这种差异的根源是什么(系统如何形成这个变量的值,以及为什么 Jenkins 的值与从 bash 中运行的 echo 不同)。一个附带的问题是哪种是可靠的使用方式$OSTYPE

0 投票
0 回答
263 浏览

asp.net-mvc - 如何在 cshtml 中使用服务器代码检测 IOS 版本?

我的问题是关于从服务器端检测 ios 版本。基于ios版本,我将在cshtml更改内容。我想检查版本是否大于或等于 ios13。

伪代码是这样的

我找到了这段代码

var userAgent = Request.UserAgent.ToString().ToLower();

它会像下面一样返回

mozilla/5.0 (iphone; cpu iphone os 13_2 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/13.0.3 mobile/15e148 safari/604.1

0 投票
2 回答
594 浏览

python - 如何从 Python 脚本中检测 Android 操作系统?

我在 Android 设备上的termux环境中运行 python 脚本,我希望能够检测到操作系统是 Android。

传统方法不起作用:

还有哪些其他 ootb 选项可用?

一个明显有用的选项是platform.machine()返回armv8——这不仅仅是“Linux”,它只是架构,而不是操作系统,它可能会返回误报,例如在树莓派或其他基于 arm 的系统上。

0 投票
1 回答
46 浏览

javascript - 如何在纯 JavaScript 中检测 MacOS Sierra 版本

我需要使用纯 javascript检测MacOS Sierra 及其版本号。请帮我提供一个代码片段。

0 投票
0 回答
53 浏览

.htaccess - DEEPLINK:.htaccess 根据用户浏览器重写

大家好

我正在尝试使用 .htaccess 重写来获取用户的操作系统并根据该操作系统将它们重定向到深层链接。

我尝试使用但不起作用的代码是:

但是,如果我将其设置为重定向到常规 HTTP URL,它就可以正常工作,例如:

问题是,当我添加链接以调用用户移动设备中的特定应用程序(深层链接)时,它不起作用。

下面的这些特定链接将在 http 元重定向或 ahref 链接上正常工作。但是当使用 .htaccess 重写时它不会工作。

[ANDROID] intent://www.youtube.com/#Intent;package=com.google.android.youtube;scheme=https;end

[iOS] vnd.youtube://www.youtube.com/

您对如何修复它并使其通过 .htaccess 重定向工作有任何想法吗?