{"id":5129,"date":"2022-06-28T18:59:43","date_gmt":"2022-06-28T09:59:43","guid":{"rendered":"https:\/\/blog.bitmeister.jp\/?p=5129"},"modified":"2022-08-09T17:35:19","modified_gmt":"2022-08-09T08:35:19","slug":"tsubame-python-quick-traceroute","status":"publish","type":"post","link":"https:\/\/blog.bitmeister.jp\/?p=5129","title":{"rendered":"Tsubame: Python Quick Traceroute"},"content":{"rendered":"<p>Hello there,<\/p>\n<p><a href=\"https:\/\/github.com\/nbtk\/tsubame\">I implemented a quick traceroute in Python.<\/a> First of all, let me show you an example of command execution.<\/p>\n<pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\r\n$ time sudo tsubame example.com\r\ntraceroute to example.com (93.184.216.34), 32 hops max\r\n 1  192.168.0.1  0.458 ms  0.472 ms  0.436 ms\r\n 2  203.0.113.1  10.294 ms  10.286 ms  10.227 ms \r\n 3  203.0.113.2  10.195 ms  10.243 ms  10.281 ms \r\n 4  203.0.113.3  155.828 ms  156.041 ms  156.458 ms\r\n 5  203.0.113.4  168.941 ms  169.190 ms  169.366 ms\r\n 6  206.223.116.170  221.656 ms  221.944 ms  222.206 ms\r\n 7  152.195.84.131  223.444 ms  223.719 ms  223.928 ms\r\n 8  93.184.216.34  221.037 ms  222.064 ms  222.325 ms\r\n\r\nreal    0m0.416s\r\nuser    0m0.137s\r\nsys     0m0.046s\r\n<\/pre>\n<p><!--more--><\/p>\n<p>It&#8217;s so quick, isn\u2019t it? Tsubame sends speculative probe packets and returns the results immediately. Currently, it only supports IPv4 ICMP echo requests as probe packets. Unfortunately, I don&#8217;t have enough\u00a0time to implement\u00a0additional features. I know I have to support IPv6 as soon as possible, though&#8230;<\/p>\n<p>If this module is useful to you, I would appreciate it if you would click the star on the repository page. Thank you \ud83d\ude42<\/p>\n<p><a href=\"https:\/\/github.com\/nbtk\/tsubame\">https:\/\/github.com\/nbtk\/tsubame<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello there, I implemented a quick traceroute in Python. First of all, let me show you an example of command e [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5129","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts\/5129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5129"}],"version-history":[{"count":13,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts\/5129\/revisions"}],"predecessor-version":[{"id":5144,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=\/wp\/v2\/posts\/5129\/revisions\/5144"}],"wp:attachment":[{"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bitmeister.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}