問題タブ [traceroute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1356 参照

python - root なしで Python に UDP traceroute を実装する

Python 2.6 で UDP traceroute ソリューションを実装しようとしていますが、オペレーティング システムに付属の traceroute ユーティリティと同じようなアクションを実行するためにルート権限が必要な理由を理解できません。

このコードが実行される環境が root 権限を持っていることは非常に疑わしいので、Python の実装をやめて、OS traceroute の出力を UDP モードで解析するために何かを書かなければならない可能性が高くなりますか? または、のように構成されたソケットを開くことについて、私が見逃していることがありますかself.rx = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)。ルート権限がないとアクセスできないようですsocket.SOCK_RAW。これにより、これをPythonで実装するために必要なデータを効果的に消費できなくなります。

0 投票する
4 に答える
100562 参照

traceroute - tracert コマンドがタイムアウトを返す

tracert は要求されたタイムアウトを返します。このことから私が理解しているのは、ネットワーク上のどこかで失われたパケットです。

問題は ISP にあるのか、ホスティング プロバイダーにあるのか、自分の Windows システムにあるのか?

最初の 9 個は成功しました。

0 投票する
0 に答える
875 参照

c - 仮想マシンで TTL が小さい UDP パケットの ICMP TTL 超過パケットを受信できない

raw ソケットを使用して TTL=1 で UDP パケットを送信するプログラムを作成しました。ローカル ホストでこのプログラムを実行すると、ICMP パケットを受信できます。しかし、Planetlab ノードで実行すると、ICMP パケットを受信できません。

Planetlab ノードでは、各ノードは多くのユーザーによって共有され、各ユーザーには仮想スライスのみが割り当てられます。したがって、一般的に、プロセスが特定のポートにバインドされている場合にのみ、そのポートからパケットを受信できます。そうでない場合、システムはランダムなパケットをスライスに配信できません。

しかし、traceroute のソース コードをダウンロードして、planetlab ノードで実行したところ、ICMP TTL を超えたパケットを受信できました。

つまり、tcpdump を使用して、Planetlab ノードで ICMP パケットをキャプチャします。プログラムを実行して TTL=1 で UDP パケットを送信すると、tcpdump は ICMP パケットをキャプチャできませんが、tcpdump を使用して TTL=1 で UDP パケットを送信すると、tcpdump は ICMP パケットをキャプチャできます。

この違いの潜在的な理由は何ですか?

ありがとう!

私のソースコードのいくつか:

0 投票する
0 に答える
199 参照

ruby - ICMP メッセージを受信できないのはなぜですか?

ライブラリなしで簡単なtracerouteを作りたいです。

Wireshark で着信応答が表示されますが、メッセージを受信できません。のポートは のポートreceive_socketと同じsend_socketであり、指定されたプロトコルは正しい必要があります。

誰かが私を助けることができれば、それは素晴らしいことです.

0 投票する
1 に答える
372 参照

java - InetAddress.isReachable メソッドを使用して中間ホップを取得する

InetAddress.isReachable(NetworkInterface , int ttl, int timeOut) は、ttl からのホップ数で特定のアドレスに到達できる場合は true、そうでない場合は false を返します。

また、成功または失敗のメッセージを取得した IP アドレスを知ることはできますか? つまり、isReachable が成功または失敗の応答を取得する中間ホップの IP を取得できるということです。

0 投票する
1 に答える
734 参照

php - Traceroute スクリプトが間違った IP からトレースしている

ホスト/IP への traceroute を実行するためのスクリプトを作成しましたが、何らかの理由で、それを使用しているローカル ユーザーからではなく、サーバーからのトレースとして出力されます。端末で traceroute をプルアップすると、出力がまったく異なります。

ここで試すことができます http://beta.tracert.us コードをいじろうとしましたが、取得できないようです。私はこれを仕事用のユーティリティとして、そして他のユーティリティが仕事で少し遅れているのでそれを使用する人々のために、これを立ち上げようとしています.
すべてのヘルプは大歓迎です

0 投票する
1 に答える
209 参照

networking - クライアントへの「プライベートWAN」を備えたインターネットプロバイダー?

変ですね。これが実際にどのように機能するか。これまでのところ、このようなネットワークを持つことは「不可能」であることを知っています。私のネットワークがどのように機能するかを詳しく説明します。

私はLANを持っています。192.168.1.0/24 で、ルーターは 192.168.1.1 にあります。このルーターにはパブリック アドレスがあります。テスト用のサーバーを実行しているので、IPアドレスを共有できます。ここまでは問題ありません。今、魔法が起こります。IPへのルートをトレースすると、これが得られました(Google DNSへ):

2 番目、3 番目、4 番目のホップとは何ですか? 192.168.1.1 が LAN と外部の 3 つのパブリック アドレスを持つ NAT サービスを実行している場合、クラス A のプライベート アドレスにするにはどうすればよいですか (はい、3 つあり、88,89,93 ネットワーク上に 3 つの「クラス A」IP があります)。 .

もう 1 つの問題は、4 番目のホップで 2 番目のオクテット 255 を取得する方法です。

誰でも気軽に私の no-ip ドメインを traceroute してください: synackfiles.no-ip.org 私のルーターを台無しにしないでください (ポートスキャンを行ったり、ssh または http auth でのログインに失敗するとブロックされるため、禁止されます。 traceroute だけなら問題ありません) :P

さて、2番目の魔法と奇妙なことが起こります。nmap を実行します。だから私はこれを手に入れました:

うーん、これは奇妙です。自国の WAN がどのように設計および構築されているかわかりません。私はポルトガル出身で、ISP は「ZON TVCABO」です。今すぐ検索できます。:P これは非常に非常に興味深い..

心から、

int3

0 投票する
1 に答える
922 参照

c - 仮想マシンを介して gcc でコンパイルする際の問題

現在、Ubuntu を実行している仮想マシンを介してファイルをコンパイルしようとしていますtraceroutet.cが、これが問題の原因であると考えています。大学の VPN 経由でもファイルにアクセスしていますが、問題が発生する可能性はありますか?

を使用して vm の端末からコンパイルしようとすると、次のgcc -o traceroutet traceroutet.cエラーが発生します。

traceroutet.c:13:16: fatal error: ip.h: No such file or directory

compilation terminated

問題は、ヘッダー ファイルがソースと同じフォルダーに保存されているので、ここで動作すると思いgcc -oましたか? -I/h/SCC203/Lab 2/ip.cコンパイル時にも使用してみましたが、同様のエラーが発生します。

私はgccしばらく使用していますが、問題はありませんでしたので、これは仮想マシンまたは VPN に関係していると思いますか?