当前位置: 首页 > 面试题库 >

是否可以在浏览器中执行traceroute?

闾丘照
2023-03-14
问题内容

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

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

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

编辑
:我刚刚发现它已经用Java小程序完成:http :
//www.codefromthe70s.org/traceroute.aspx

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

此处提供更多信息:http :
//www.codefromthe70s.org/traceroute_explained.aspx

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

编辑2 :感谢您的回答。我想那时候我将不得不使用Java。

我不知道NaCl(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,然后将输出重定向回浏览器。



 类似资料:
  • 问题内容: 我正在使用Selenium RC自动执行一些浏览器操作,但我希望浏览器不可见。这可能吗?怎么样?selenium网格呢?我也可以隐藏Selenium RC窗口吗? 问题答案: 有几种选择: 您可以使用Selenium Grid,以便在完全不同的计算机(或虚拟机)上打开浏览器,然后如果您想查看浏览器,则可以通过VNC或远程桌面连接连接到该计算机。另外,还有一个选择:如果在该远程服务器上运

  • 我尝试了以下testng.xml文件,它指向一个运行类,然后指向多个特性文件,但没有成功:/

  • 问题内容: 是否有可用的编程库来解析HTML文档,执行JavaScript,然后允许我浏览DOM?这需要在服务器端而非客户端执行。任何语言都可以,但是首选Java,PHP或Ruby。 问题答案: 在Java中:http : //lobobrowser.org/cobra/java-html- parser.jsp 这是一个可识别Javascript,可识别CSS的HTML解析器 ,它与您的问题有关

  • 问题内容: 这是A0.txt A0.html文件 此代码在命令中执行,但在任何浏览器中均不执行 问题答案: 正如其他人所评论的那样,您确实不想这样做。 只需在服务器端创建一个Web服务(可以是普通的servlet),然后在applet中使用它。 基本Servlet示例: 小程序基本示例: 但是要小心SQL注入。绝对不要将原始SQL查询作为请求参数或pathinfo传递,并始终使用DAO代码。 作为

  • 对于一些网站,当我按F12按钮看到html元素,什么都没发生。为什么啊?我通过ie和谷歌chrome测试它。有什么工具可以看到这个网站的元素和媒体吗?

  • 问题内容: 截至本文发布之日,名称“ Microsoft Edge”才被正式宣布为新Windows 10的默认浏览器。 问这个问题还为时过早,但是我想知道是否有新的Selenium WebDriver可用,如果没有,是否有任何信息可以告诉我们我们期望等到开发出来再等多久? (Windows 10的技术预览版已经发布,因此在我看来这并不是一个愚蠢的问题。) 问题答案: 是的,Microsoft Ed