Is it possible to do a traceroute in the browser?

后端 未结 8 1862
执念已碎
执念已碎 2021-02-02 11:00

I\'m looking for a way to do a traceroute client-side, i.e. in a browser.

As far as I know, it\'s not possible to send ICMP, UDP or TCP packets with arbitrary TTL values

8条回答
  •  既然无缘
    2021-02-02 11:43

    You can't do this at all from a browser. Javascript can at best open a connection back to its originating server for AJAX requests, but can only do so via HTTP. Flash can talk to arbitrary hosts, but only if they're listed in a crossdomain.xml file on the originating server, and again only via TCP. UDP support in Flash is apparently pending.

    Traceroute and ping are both ICMP-based protocols and cannot be created/controlled from Flash or Javascript. They also both require 'raw' access to build custom packets, and this definitely cannot be done browser-side. This is why 'ping' is an 'SUID' program on Unix systems, as raw packet access requires root privileges.

    At best you can do a server-side implementation and have the output sent to the browser. And even then, you most likely could not do it from an in-server process on a Unix box, as the web server is unlikely to be running as root. You'd have to execute the system ping and/or traceroute and redirect the output back to the browser.

提交回复
热议问题