2

Windows 7でpython 2.6とScapyを使用してスニファーを構築しています。ユーザーがスニッフィングを開始したい場合、スニッフィングしたいインターフェースを選択するオプションを彼に与えます。これにより、インターフェースが得られます-

def get_interfaces():
    """returns a list of available network interfaces"""
    interfaces = []
    for iface_name in sorted(ifaces.data.keys()):
        dev = ifaces.data[iface_name]
        mac = str(dev.mac)
        mac = conf.manufdb._resolve_MAC(mac)

        i = Interface(
            name=str(dev.name).ljust(4),
            ip=dev.ip.ljust(15),
            mac=mac.upper()
        )
        interfaces.append(i)
    return interfaces

インターフェイスは、インターフェイスに関するデータを簡単に渡すために作成したクラスです。私の質問は、名前が常に'ethX'である理由です。それはどういう意味ですか? Wiresharkのように、 「ワイヤレスネットワーク接続」「VirtualBoxホストオンリーネットワーク」などのより意味のあるものに変換するにはどうすればよいですか?

4

1 に答える 1

0

ethX は、Linux で ETHernet デバイスを一覧表示する従来の方法です。この説明をstackexchangeで読むことをお勧めします

インターフェイスの人間の名前を取得することに関しては、Python から行う主要なトリックです。最初の推奨事項は、Scapy リポジトリで ifaces の実装を確認することです。そこでは、アクセスできるすべてのデータを決定できます。

それを行うための困難で良い方法は、Python のパーサーを介して WinAPI にアクセスすることです。はるかに簡単な (そして汚れた) 方法は、ヘッドレス PowerShell を介して名前を取得し、それをアドレスにマッピングすることです。

とにかく、あなたは挑戦的なプロジェクトを選びました。:)

于 2015-05-21T10:36:28.937 に答える