raw-sockets

    3熱度

    3回答

    我需要使用Python從TCP流套接字讀取完整(原始)IP幀。本質上,我需要一個未經修改的框架,就像它脫離物理線路一樣,包括所有標題信息。 我一直在Python中尋找原始套接字,但我遇到了一些問題。我不需要組建我自己的數據包,我只需要逐字閱讀並轉發它們。 那麼,如何從現有的TCP套接字(在Python中)讀取整個IP幀(包括頭文件)呢? 最好我只想使用標準庫。另外,我在Linux主機上。 謝謝!

    5熱度

    2回答

    我目前正在進行一項編程任務。這項任務是爲了實現客戶端,網絡仿真器和服務器。客戶端將數據包傳遞給網絡模擬器,並將網絡模擬器傳遞給服務器。反之亦然。這項任務的先決條件是我只能使用原始套接字。所以我將創建自己的IP和UDP標頭。我用wireshark測試了我的數據包。它們都是正確的,並且格式正確(正確讀取它們)。 另一個要求是模擬器,客戶端和服務器都有它們必須綁定的特定端口。現在,我不明白如何將原始套接

    0熱度

    1回答

    我的問題是,當我用PF_PACKET進行收聽時,我也收到了我的信箱發送的信息包,這是不受歡迎的。 err_create = sock_create(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL), sock); 代替ETH_P_ALL,我嘗試了ETH_P_IP,但後來我只將包發送到我的主機。所以我的想法是將套接字綁定到一個接口。 'sockaddr_ll'我可以定義

    5熱度

    3回答

    我有一個小型項目,我一直在使用C++,並且由於它的性質,我需要將數據包插入到實時TCP流中。 (目的是無辜的,如果你必須知道http://ee.forumify.com/viewtopic.php?id=3299) 我正在爲遊戲創建一個關卡編輯器,而且由於握手的性質,我不能簡單地建立與高級庫的新連接,例如的WinSock。到現在爲止,它依靠Winsock Packet Editor來完成這項骯髒的

    2熱度

    1回答

    我已經編寫了一個在Ubuntu LTE上運行的應用程序,該應用程序應該使用原始套接字向239.255.25.25端口5004發送多播消息。要接收多播,我正在使用UDP套接字。來自rtp流的wireshark捕獲通過套接字發送的數據。現在的問題是,我無法使用UDP套接字接收消息。 爲了檢查接收器是否正確,我建立了一個發送者,它使用一個普通的UDP Socket。 當我現在通過RAW和UDP套接字發送

    4熱度

    1回答

    我正在嘗試編寫一個C程序,它將UDP數據包發送到給定的IP地址,並等待路由器的ICMP響應,告訴生存時間過期。它保持非常簡單,因爲我只想首先理解機制。我需要的是有人檢查我的代碼,提供有關錯誤和缺失的反饋。我在C語言編程很沒有經驗,但我必須這樣做,作爲分配 - 給我的最好的理解...... #include <stdio.h> #include <stdlib.h> #include <stri

    2熱度

    1回答

    作爲家庭作業的一部分,我必須在Linux中編寫一個C程序,該程序使用原始套接字生成對ICMP Echo請求的ICMP回覆。 ICMP數據包中的數據是否也必須包含在校驗和中?或者我應該只計算頭的校驗和?

    1熱度

    2回答

    我想在C++中實現UpNP,我在谷歌上找到了一些源,但都沒有工作。我發現這一個工作(http://www.codeproject.com/KB/IP/upnplib.aspx),但它是爲.NET,所以我決定嗅探網絡,看看代碼在做什麼,然後對套接字做同樣的事情。 下面是結果(全尺寸:http://i.stack.imgur.com/eLoHK.jpg): 這表明我的包不看壞,一切似乎是相同的,一切,

    5熱度

    2回答

    我正在學習原始插座。我使用IP_HDRINCL選項來構建我自己的IP標頭。 IP頭後,我正在建立一個UDP頭。然後我將數據包發送到我的系統的環回地址。我有另一個運行的程序,它會在它們來的時候捕獲UDP數據包。爲了檢查數據包是否被正確地形成和接收,我正在運行另一個正在讀取原始IP數據報的進程。我的問題是,儘管第二個進程(讀取原​​始數據報)運行良好(所有IP和UDP字段似乎都沒問題),但第一個進程(

    2熱度

    3回答

    我想通過監聽原始套接字通過代碼從網站讀取響應,但迄今爲止,我只能讀取由我的計算機發送的傳出請求,而不是我真正感興趣的即將到來的回覆。 我該如何去閱讀傳入的回覆? 編輯:使用Wireshark我發現我正在尋找的數據正在通過TCP發送,我相信。 Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Raw, Protoc