有没有办法通过浏览器向客户端发送TCP请求?

有没有办法通过浏览器向客户端发送TCP请求?

问题描述:

我正在开发一个web应用程序。我想知道客户机器的某些参数。我已经能够找出大部分参数,但是我在以下参数中遇到了问题。有没有办法通过浏览器向客户端发送TCP请求?

1)TCP时间戳

2)TCP/IP指纹

所以,我的问题是,有没有一种方式,通过我的web应用程序发送TCP请求的客户端(假设我知道客户端的IP地址)。或者有什么方法可以找到客户机器上的这些参数。任何提示如何开始将不胜感激。

+0

您可以ping一个http可到达的IP,但很难确切地告诉您要做什么。 – dandavis 2014-12-08 05:45:15

+0

的事情是,我正在设备指纹识别。我想从客户端机器收集尽可能多的参数,而不使用客户端机器上运行的小程序或代码。我想借助Javascript来提取这些参数。所以我只是想知道是否有一种方法通过javascript找到tcp请求时间? – user3213851 2014-12-08 05:49:05

+0

你可以花时间和Ajax请求等,你可以从webRTC支持的浏览器获得当前的客户端IP。使用performance.now()获取手动观测的高分辨率时间戳。 performance.getEntries()也有连接细节,这可以让你免去手动时间,并且它报告重定向,这些简单的图像不会... – dandavis 2014-12-08 05:51:18

所以,我的问题是,有没有办法通过我的web应用程序发送TCP请求到客户端(假设我知道客户端的IP地址)。或者有什么方法可以找到客户机器上的这些参数。任何提示如何开始将不胜感激。

如果您可以使用来自Web应用程序的套接字(而不是websockets),那么您可以尝试与客户端建立TCP连接。但这在大多数情况下可能不起作用,因为:

  • 客户端将不会侦听来自外部的TCP连接,所以您最多只能获得一个RST数据包。
  • 今天,客户端主要位于一些NAT设备之后,如家中的路由器或移动网络中的路由器。因此,从客户端连接到您的服务器的源IP在大多数情况下不是客户端本身的IP,而是NAT路由器的IP。由于客户端没有公共IP地址,因此无法直接联系。

1)TCP时间戳

2)TCP/IP指纹

这些通常是不参数,您做一个简单的TCP请求找出来,但你需要与原工作插座。此外,这些信息的一部分可以从已建立的连接派生,但您必须能够跟踪原始级别的连接(如使用tcpdump)。