raw-sockets

    2熱度

    1回答

    我基於原始套接字implemneting代碼。爲了接收即將到來的以太網幀,我必須將創建的套接字綁定到以太網接口。只有這樣,才能做到這一點,就我本人而言,是通過調用setsockopt()的選項SO_BINDTODEVICE功能。 問題是我使用的FreeBSD不支持這種選項。是否有任何補丁可用於啓用此功能或任何其他可信任的替代方案?

    1熱度

    2回答

    在我的應用程序打開原始套接字(LINUX內核3.8.5)具有下列 指令: ::socket(PF_PACKET, SOCK_RAW, htons((uint16_t)ETH_P_ALL)); 一切工作正常,我可以接收它並將其發送到另一個界面。 但是一段時間 ::recvfrom() 在該套接字返回1518(1504個有效負載字節+ 14 ETH_HLEN)。 當我嘗試發送1518個字節但指

    2熱度

    1回答

    我有一個C程序,它將一些數據發送到遠程計算機上的python服務器。 C代碼連接插座,然後發送出的帶外消息,隨後一些數據: int on = 1; fd = socket(PF_INET, SOCK_STREAM, 0); setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(int)) ... send(fd, msg, msg_siz

    2熱度

    1回答

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <unistd.h> #include <arpa/inet.h>

    2熱度

    3回答

    我在Linux/Debian的RAW插槽工作,我有一個問題,當我使用write()代替的sendto(): struct sockaddr_ll socket_address; /* Index of the network device */ socket_address.sll_ifindex = if_idx.ifr_ifindex; /* Address length*/ sock

    1熱度

    1回答

    嘗試使用python中的raw套接字創建數據包嗅探器,並且想要使用struct.unpack方法解析完整的TCP標頭,但是某些字段像HLEN(4位)和offset,URG,ACK,PST ,TCP報頭中的RST,SYN,FIN位不是字節。所以我的問題是如何從標題解析這些值!

    2熱度

    1回答

    我創建了一個簡單的基於RAW套接字的數據包嗅探器。但是當我運行它時,它很少捕獲一個數據包。首先我創建了這個功能,以1秒的時間間隔捕獲數據包,但看到沒有數據包被捕獲,我評論了該行。我連接到互聯網,很多http流量都在這裏和那裏,但我無法捕捉到一個。在創建套接字的代碼中是否存在這個問題?請有人給我一個解決方案。我對python編程相當陌生,無法理解如何解決這個問題。 import socket, bi

    0熱度

    2回答

    我正在編寫兩個用於發送和接收原始以太網數據包的程序。我可以發送數據包,但可以收到,但我的接收器有兩個問題。 第一:所有包都是重複的,這意味着所有在通信包中都顯示兩次。它僅在2個虛擬網絡接口上連接(例如src tap0 mac 00:00:8F:00:00:02 - > dest tap1 mac 00:00:8F:00:00:03) 第二:全部網絡中的數據包是從我的程序接收的,但它應該接收來自特定

    1熱度

    1回答

    有沒有辦法直接在Windows上使用winsock在鏈接上發送以太網數據包? 我需要廣播鏈路上的以太網數據包(即目標MAC地址:廣播​​(FF:FF:FF:FF:FF:FF))

    0熱度

    1回答

    我想使用原始套接字發送數據包。 如果我創建一個IP數據包(icmp,tcp或udp數據包),則源IP和目的IP位於IP數據包中。現在我想通過以下線路發送它: memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = inet_addr(dst_ip); sendto(sd