簡體   English   中英

來自同一網絡上另一台計算機的C#嗅探數據包

[英]C# Sniff Packets from another computer on the same Network

我瀏覽了各種C#Packet Sniffing教程,並構建了一個可以解析發送到計算機和從計算機發送的數據包的教程。 這太棒了,但是我還沒有發現任何與攔截來自另一台計算機(顯然是在同一網絡上)的數據包有關的信息,例如從另一台計算機到路由器的數據包。

我是否正確地認為計算機發送的任何數據包不僅對路由器而且對同一網絡上的任何其他計算機都是可見的? 如果是這種情況,這是否意味着我們可以在C#中完成攔截這些數據包的工作?

對於那些急切地復制和粘貼到Wireshark等鏈接的人。感謝您的寶貴時間,但這對我來說是一種學習的經驗,因此,如果可能,我希望獲得與C#相關的答案!

總之,如何在C#中攔截與計算機無關的數據包? 例如,從我的筆記本電腦到路由器?

假設您使用的是以太網交換網絡,而不是像令牌環這樣的時髦產品:即使是出色的Wireshark,它所能看到的內容也受到了限制,因為它的運行范圍與您要構建的內容相同-它的主機PC 。

不幸的是,您的PC僅能看到命中其網絡接口的數據包。 這意味着,在第3層路由網絡中,除非您的PC當然是路由器,否則您不太可能看到不適合您的任何數據包。

您需要研究SOCKS5代理等,才能達到問題所提示的網絡透明性。 在暗示少量網絡和配置開銷的同時,代理將為您提供所要訪問流量的最大可見性。

M.Babcock在回答中已經提到,交換網絡中的計算機將看不到其他兩台計算機之間的通信。

某些(托管)交換機和路由器具有將所有流量發送到監視端口的功能。 在此端口上,您可以連接計算機,並使用wireshark / pcap等查看通過交換機/路由器的所有流量。

或者,如果仍然可以訪問,則在筆記本電腦和路由器之間放置一個集線器,然后將PC連接到集線器。 集線器會將所有流量轉發到其他端口,因為他不在乎mac地址。

因此,這實際上並不取決於任何編程語言,而僅取決於網絡管理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM