0

最近、JEthereal.jarファイルをダウンロードして、インターネット接続のパケット トラフィックをキャプチャし、JEthereal調査しました。ファイルからパケットを問題なく読み取りますが、パケット.pcapをキャプチャしようとすると、次のメッセージが表示されました。

「デバイスが見つかりません。これはおそらく、JPcap はインストールされていますが、libpcap / WinPcap はインストールされていないことを意味します。Web サイトの指示に従ってインストールしてください。約 15 秒かかりますが、それだけの価値があります。」

そこで、ソース コードをダウンロードして Eclipse で開きましたWinPcap

コードを調べていくと、ネットワーク デバイスが検出されるはずの部分にたどり着きました。タイプ のネットワーク デバイスの配列を返す、パッケージ内getDeviceList()JpcapCaptorクラスの静的メソッド。以下は、インターネット上で提供された宣言です。jpcapNetworkInterface

public static NetworkInterface[] getDeviceList()

ただし、ダウンロードしたソースコードでは、メソッドは本体なしで残され、宣言されていますnative

public static native NetworkInterface[] getDeviceList();

デバイスを識別するために今何をすべきですか? ネットとこのポータルで検索したところjpcap.dll、system32 フォルダー (私は Windows7 を使用しています) にファイルが存在する必要がありWinPcap、そのためにインストールする必要があることがわかりました。既にインストール済みで、system32 フォルダーにファイルWinPcapがありません。jpcap.dllまた、system32 を PATH 変数に追加する必要があると思いますが、そこにないのでまだ行っていませんjpcap.dll

事前にサンクス!!

4

2 に答える 2

0

jpcap.JpcapCaptor クラスの getDeviceList() メソッドが JEthereal でネイティブなのはなぜですか?

getDeviceList()ネイティブ (C/C++) コードとして実装されているためです。

パケットをキャプチャしようとすると、「デバイスが見つかりません...」というメッセージが表示されました

Windows7を使用しています

タッチ。Windows Vista (root のようなプレテンションを実装した最初の Windows) 以降では、jpcapを管理者として実行する必要があります。これは、少なくともシステムの再起動後に初めて jpcap を実行するときに実行する必要があります (これにより、winpcap ライブラリがネットワーク リソースへのアクセスを許可されます)。

jpcap FAQより

Q: ネットワーク インターフェイスのリストを取得できないか、パケットをキャプチャできません。なんで?

Jpcap ベースのアプリケーションを実行するために必要な管理者権限がないことが原因である可能性があります。

Windows 2000/XP では、アカウントは管理者グループに属している必要があります。

Windows Vista では、アカウントが管理者グループに属していても、「管理者として実行」オプションを使用する必要があります。このオプションを使用するには、アプリケーション アイコンを右クリックし、[管理者として実行] を選択します。アプリケーションがコマンド ライン ベースの場合、「管理者として実行」オプションを使用してコマンド プロンプトを開き、そのコマンド プロンプト内でアプリケーションを実行する必要があります。

于 2013-03-18T23:17:40.217 に答える
0

「ネットやこのポータルで検索したところjpcap.dll、system32 フォルダー (私は Windows7 を使用しています) にファイルが存在する必要があることがわかりました。そのためにインストールする必要がありますWinPcap。」インターネットで

jpcap.dllはWinPcap の一部ではなく、WinPcapをインストールして取得する必要はありません。Keita Fujii の Jpcap をインストールする必要があります。それ)。

Jpcap のいずれかのバージョンをインストールしましたか? もしそうなら、どこから入手しましたか?JEtherealで動作しないバージョンかもしれません。

于 2013-03-01T19:37:57.470 に答える