有没有办法通过浏览器向客户端发送TCP请求?
问题描述:
我正在开发一个web应用程序。我想知道客户机器的某些参数。我已经能够找出大部分参数,但是我在以下参数中遇到了问题。有没有办法通过浏览器向客户端发送TCP请求?
1)TCP时间戳
2)TCP/IP指纹
所以,我的问题是,有没有一种方式,通过我的web应用程序发送TCP请求的客户端(假设我知道客户端的IP地址)。或者有什么方法可以找到客户机器上的这些参数。任何提示如何开始将不胜感激。
答
所以,我的问题是,有没有办法通过我的web应用程序发送TCP请求到客户端(假设我知道客户端的IP地址)。或者有什么方法可以找到客户机器上的这些参数。任何提示如何开始将不胜感激。
如果您可以使用来自Web应用程序的套接字(而不是websockets),那么您可以尝试与客户端建立TCP连接。但这在大多数情况下可能不起作用,因为:
- 客户端将不会侦听来自外部的TCP连接,所以您最多只能获得一个RST数据包。
- 今天,客户端主要位于一些NAT设备之后,如家中的路由器或移动网络中的路由器。因此,从客户端连接到您的服务器的源IP在大多数情况下不是客户端本身的IP,而是NAT路由器的IP。由于客户端没有公共IP地址,因此无法直接联系。
1)TCP时间戳
2)TCP/IP指纹
这些通常是不参数,您做一个简单的TCP请求找出来,但你需要与原工作插座。此外,这些信息的一部分可以从已建立的连接派生,但您必须能够跟踪原始级别的连接(如使用tcpdump)。
您可以ping一个http可到达的IP,但很难确切地告诉您要做什么。 – dandavis 2014-12-08 05:45:15
的事情是,我正在设备指纹识别。我想从客户端机器收集尽可能多的参数,而不使用客户端机器上运行的小程序或代码。我想借助Javascript来提取这些参数。所以我只是想知道是否有一种方法通过javascript找到tcp请求时间? – user3213851 2014-12-08 05:49:05
你可以花时间和Ajax请求等,你可以从webRTC支持的浏览器获得当前的客户端IP。使用performance.now()获取手动观测的高分辨率时间戳。 performance.getEntries()也有连接细节,这可以让你免去手动时间,并且它报告重定向,这些简单的图像不会... – dandavis 2014-12-08 05:51:18