是否可以在浏览器中进行路由跟踪?

2024-01-11

我正在寻找一种在客户端(即在浏览器中)进行跟踪路由的方法。

据我所知,不可能通过Javascript或Flash发送具有任意TTL值的ICMP、UDP或TCP数据包。我知道 Flash 允许通过 Actionscript 中的 Socket 类进行 TCP 连接,但它对于跟踪路由实现似乎没有用处。

开发浏览器插件是唯一的解决方案吗?

EDIT:我刚刚发现它是用Java小程序完成的:http://www.codefromthe70s.org/traceroute.aspx http://www.codefromthe70s.org/traceroute.aspx

坏消息是这个小程序需要签名代码,因为它实际上解析底层客户端系统的 ping 可执行文件的输出。因此,需要用户允许Java应用程序运行,这很麻烦。

更多信息请点击这里:http://www.codefromthe70s.org/traceroute_explained.aspx http://www.codefromthe70s.org/traceroute_explained.aspx

如果有人可以提供帮助,我仍在寻找更简单的解决方案。

EDIT 2: 谢谢你的回答。我想我必须选择Java。

我想知道是否氯化钠(http://code.google.com/p/nativeclient/ http://code.google.com/p/nativeclient/)将支持某种traceroute应用程序。


您根本无法通过浏览器执行此操作。 JavaScript 最多可以为 AJAX 请求打开一个返回其原始服务器的连接,但只能通过 HTTP 来实现。 Flash 可以与任意主机通信,但前提是它们列在原始服务器上的 crossdomain.xml 文件中,并且同样只能通过 TCP。 Flash 中的 UDP 支持显然正在等待中。

Traceroute 和 ping 都是基于 ICMP 的协议,无法从 Flash 或 Javascript 创建/控制。它们还都需要“原始”访问来构建自定义数据包,而这绝对不能在浏览器端完成。这就是为什么“ping”在 Unix 系统上是一个“SUID”程序,因为原始数据包访问需要 root 权限。

最好的情况是,您可以进行服务器端实现并将输出发送到浏览器。即便如此,您很可能无法从 Unix 机器上的服务器内进程中执行此操作,因为 Web 服务器不太可能以 root 身份运行。您必须执行系统 ​​ping 和/或traceroute 并将输出重定向回浏览器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在浏览器中进行路由跟踪? 的相关文章

随机推荐