raw-sockets

    0熱度

    1回答

    我在x64機器上。這裏是我是如何計算校驗和ICMP: unsigned short in_checksum(unsigned short *ptr, int n_bytes) { register long sum; u_short odd_byte; register u_short ret_checksum; while (n_bytes > 1)

    1熱度

    1回答

    我知道這個問題必須被問過,但我不能找到一個很好的解決它。 我寫在Ubuntu 12.04 C程序使用一個原始套接字發送TCP數據包。計算校驗和非常耗時,所以我試圖將其卸載到我的NIC。 struct sockaddr intfAddr rawSock = socket(AF_INET,SOCK_PACKET,htons(3)); //ETH_P_ALL = 3 if (rawSock == -

    0熱度

    3回答

    我正在使用原始套接字發送數據報,如this教程(第III部分)中給出的。但是,我無法正確打印響應(顯示垃圾字符)。不知道該程序有什麼問題。 任何人都能夠識別錯誤? #define P 80 /* TCP port 80 - HTTP */ unsigned short /* this function generates header checksums */ csum(unsigned

    2熱度

    2回答

    我想在Linux中(使用Python)打開一個原始套接字而不給Python cap_net_raw功能。我希望用戶擁有這個能力,而不是程序。我使用的是Ubuntu 12.4。

    1熱度

    1回答

    我想實現一個IPv6 UDP客戶端 - 服務器應用程序,它將讓我得到Hop by Hop擴展頭的詳細信息。所以爲此,我想我必須使用SOCK_RAW才能訪問IPv6標頭信息。在我的客戶端代碼 現在,我有以下 #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <stdio.

    1熱度

    1回答

    我試圖在veth接口上接收ping數據包。但我在接收方看不到任何東西。當我執行TCP轉儲時,我可以看到數據包。這是我的代碼。 s_int32_t checkingRawSocket(void) { int sockfd; char ifName[IFNAMSIZ]; fd_set readfds; int m_sd; int retVal;

    1熱度

    1回答

    我正在使用原始套接字來捕獲網絡數據包。我捕獲了以太網報頭,然後我訪問了IP報頭,在IP報頭中有一個'協議'字段。我打印此字段並與/ etc/protocols中的值進行比較。我已收到「0」值,該值指 - ip 0 IP #'internet protocol, pseudo protocol number' 這意味着IP報頭包含協議也是IP。那是什麼意思 ?

    0熱度

    1回答

    如何使用recvfrom()獲取數據包?以及如何知道它是bdpu流量? 我讀了somesource,但沒有找到聽以太網通信。 int data_size, addr_size; char reply[6000]; struct sockaddr_in addr; addr_size = sizeof addr; datasize = recvfrom(sock, reply, 6000,

    0熱度

    1回答

    現在我試圖將用C編寫的代碼遷移到Chrome瀏覽器的應用程序。 我是NaCl應用程序編程新手,如果使用本機客戶端,我可以使用原始套接字,但我不太瞭解。我需要使用原始套接字,因爲我必須創建修改後的數據包,例如TTL非常低的UDP。 所以一般來說,我的問題是,我可以使用原始套接字(C風格)與氯化鈉?如果答案是肯定的,如果你可以提供一些額外的信息,那會很好。

    1熱度

    2回答

    我嘗試使用Linux下的原始套接字捕獲網絡數據包.. 這有時會起作用。我似乎可以捕捉到一些對話,但不是全部。 我創建一個套接字: sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); 然後我通過它綁定爲eth0: struct sockaddr_ll sll; struct ifreq ifr; memset(&sll, 0, siz