代码之家  ›  专栏  ›  技术社区  ›  Franck

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

  •  16
  • Franck  · 技术社区  · 16 年前

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

    编辑 http://www.codefromthe70s.org/traceroute.aspx

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

    http://www.codefromthe70s.org/traceroute_explained.aspx

    如果有人能帮忙的话,我仍然在寻找一个更简单的解决方案。

    编辑2 :谢谢你的回答。我想那我就得用Java了。

    http://code.google.com/p/nativeclient/ )将支持某种跟踪路由应用程序。

    8 回复  |  直到 9 年前
        1
  •  7
  •   Marc B    16 年前

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

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

        2
  •  5
  •   BalusC    16 年前

    只是 jarsigner Here

    实际上没有比这更简单/更好的解决方案了 事实上

    由于安全限制,Javascript和Actionscript无法执行此操作。它们仅存在于网页上下文中。Silverlight也许能做到,但别把我牵扯进去。我不上网。

        3
  •  3
  •   RamC Peter Neubauer    6 年前

    有CoNetServ(复杂网络服务)浏览器扩展。它可以直接在浏览器中从本地计算机执行跟踪路由。 https://github.com/VojtechVitek/CoNetServ/wiki

    https://chrome.google.com/extensions/detail/mmkpilpdijdbifpgkpdndpjlkpjkihee Firefox插件: https://addons.mozilla.org/en-US/firefox/addon/181909/


    编辑:

        4
  •  1
  •   Rich    16 年前

    隐马尔可夫模型。。。不,因为安全模型。

    能够通过插件在特定浏览器中执行此操作,但不能使用任何广泛可用的任意浏览器。

    我希望在这里被证明是错的。

        5
  •  0
  •   Ilian Iliev    16 年前

    在服务器上执行traceroute并通过某种ajax调用返回结果怎么样

        6
  •  0
  •   mTorres    15 年前

    Java1.5有一个InetAddress类,它带有一个isReachable方法,您可以尝试一下。选中此项:

    http://download.oracle.com/javase/1.5.0/docs/api/java/net/InetAddress.html#isReachable(int

        7
  •  0
  •   myfreeweb    14 年前

    您不需要创建小程序并对其进行签名!可以从javascript使用java。 I made a script 用于使用ActiveX或Java执行跟踪路由。

    我在OSX上没有看到任何安全警告。在Windows和Linux上试用,并告诉我发生了什么:-)

    UPD:

        8
  •  0
  •   Ярослав Исаев    10 年前
    <script type="text/javascript">
            function runapp() {
            var domain = "10.10.35.1";
            var cmdLine = "tracert" +" " + domain; 
            var wshShell = new ActiveXObject("WScript.Shell"); 
            var out = wshShell.Exec(cmdLine); 
            var output1 = out.StdOut.ReadAll();
            document.getElementById('box').innerHTML += output1;
            }
    
         </script>
    
    <div id="box" align="center"></div>
        <button onclick="runapp();">Click me!</button>
    

    因为ActiveX,所以它只能在IE中工作。