2010-12-30 14 views
1

Wenn ich ein Gerät auf meinem Computer erfolgreich finde, und den Anruf zu pcap_open (...) Ist das nur Pakete von und zu meinem Computer Pakete? Was ist mit anderen Computern im Netzwerk? Zeigt es mir Pakete, die noch nicht gesendet wurden?pcap-Funktion: pcap_open() Frage

Antwort

3

Kurze Antworten:

Hängt davon ab, und nein.

Längere Antworten:

Sie müssen ein paar Dinge zu verstehen, bevor die Fragen beantwortet werden können. Zunächst müssen Sie wissen, dass jedes in einem Ethernet-Netzwerk gesendete Paket einen Ethernet-Header enthält, der eine Quell- und Zieladresse angibt. Diese Adressen gehören zu den Ethernet-Karten des Senders und des vorgesehenen Empfängers im Ethernet-Netzwerk. Beachten Sie, dass sich diese von IP-Adressen unterscheiden. (Siehe Adressauflösungsprotokoll (ARP) für die Ermittlung der Ethernet-Adressen).

Wenn ein Computer ein Paket empfängt, dessen Zieladresse des Ethernet-Headers mit der Adresse seiner eigenen Ethernet-Karte übereinstimmt, wird sie verarbeitet. Ansonsten verwirft es es.

Wenn Sie beispielsweise eine Gruppe von Computern an einen Hub angeschlossen haben und ein Computer ein Paket an einen anderen Computer sendet, sehen ALLE Computer dies, da Hubs einfach jedes Paket auf allen angeschlossenen Verbindungen übertragen . Nur ein Computer wird das Paket tatsächlich verarbeiten, und das ist der Computer, der in dem Ethernet-Header angegeben wird.

Jetzt auf pcap. Sie können Pakete im Promiscuous-Modus oder im Non-Promiscuous-Modus (nicht sicher, ob es einen besseren Begriff dafür gibt) erfassen. Wenn sich Ihre Schnittstelle im Promiscuous-Modus befindet, zeigt PCAP ALLE Pakete an, die auf Ihrer Schnittstelle empfangen werden, auch wenn das Ziel von Das Paket stimmt nicht mit dem Ziel dieser Schnittstelle überein. Im nicht promisken Modus werden nur Pakete angezeigt, deren Zielfeld mit der Adresse Ihrer Schnittstelle übereinstimmt.

Jetzt, um Ihre Fragen zu beantworten.

Sie werden immer Pakete sehen, die von Ihrem Computer gesendet werden und immer Pakete sehen, die speziell an Ihren Computer gerichtet sind. Sie sehen möglicherweise Pakete von anderen Computern abhängig von Ihrem Netzwerk gesendet. Sie sehen möglicherweise, dass Pakete an andere Computer in Ihrem Netzwerk gesendet werden, abhängig von Ihrem Netzwerk. Wenn Sie beispielsweise Pakete auf einer WiFi-Schnittstelle erfassen, können Sie Pakete sehen, die von anderen Computern stammen und gesendet werden (weil sie über Funk gesendet werden und jeder in Reichweite sie sehen kann). Das Gleiche gilt für einen Hub, der alle empfangenen Pakete überträgt. Wenn sich Ihr Adapter im Promiscuous-Modus befindet, zeigt pcap diese an, so dass Sie den Datenverkehr von/zu anderen Computern sehen können. Wenn Ihr Computer andererseits an einen Switch oder Router angeschlossen ist, sehen Sie nur Ihren Datenverkehr, da der Switch/Router Ihnen den Datenverkehr des anderen Computers nicht sendet (lesen Sie auf Hubs/Switches/Routern nach, um zu erfahren, warum). Zu guter Letzt wird es Ihnen KEINE Pakete zeigen, die noch nicht gesendet wurden, da sie eine Schnittstelle senden müssen, bevor pcap sie sehen kann.

+0

Danke für die Antwort! – TheFuzz

+0

Da mein Computer an einen Switch angeschlossen ist, sehe ich keinen anderen Netzwerkverkehr, aber was ist mit einem Remote-pcap_open (...)? – TheFuzz

+0

Was meinst du mit einer Fernbedienung pcap_open()? Welche Art von Netzwerkverkehr versuchen Sie trotzdem zu erfassen? – Neal