raw-sockets

    2热度

    1回答

    我正在编写使用原始套接字监视FTP流量的程序。现在,我能够确定使用此代码TCP报文数据的起始位置: // char * packet; // struct * iphdr; // struct * tcphdr; // ... // check, whether sniffed ethernet frame contains IP and TCP char * data; dat

    0热度

    1回答

    我的代码试图手动建立一个TCP握手,然后它通过HTTP GET发送一个请求资源的数据段。 我使用原始套接字来制作标题并发送数据包,并使用libpcap检查收到的数据包标题。 SYN已成功发送给接收方,然后接收方以SYNACK回复我。到目前为止它工作正常,但是当我收到SYNACK时,我试着ACK它,然后发送HTTP GET接下来,这看起来不行。我可以在wireshark中看到头文件可以正常使用。 所

    1热度

    3回答

    我试图发送一个原始数据包使用UDP,以及在我的代码中构建的IP和UDP标头。原始数据包成功初始化为socket(PF_INET, SOCK_RAW, IPPROTO_UDP),套接字选项使用setsockopt(sd, IPPROTO_IP, IP_HDRINCL, val, sizeof(int))设置。 问题是当我使用sendto()发送数据包时,出现错误“消息太长”。 我的IP头是20个字节

    0热度

    1回答

    我有以下代码来打开原始套接字并将其发送。在发送功能我有一个显示我,我的包的长度为21。然而,当我使用数据包嗅探器查看接收端的数据包,我看到一丝声明: 数据包的实际长度60. (如在802.3首部给出)的长度为256 这些数字也不是21,并且我与不喜欢的差异的嵌入式设备通信。我谷歌搜索,但我不知道如何使sendto()报告正确的长度。 bool EthernetSocket::_open(const

    2热度

    1回答

    我试图发送与Python ARP请求,与dpkt的工作,而且我发现,使用一些示例代码: socket.socket(socket.PF_PACKET, socket.SOCK_RAW) 我明白,你需要使用原始套接字来发送这个,但它说,socket.PF_PACKET不存在。在我看到的python文档中没有任何关于它的内容。那么,这个人从哪里获得PF_PACKET呢?它会做什么?我怎样才能得到它

    2热度

    2回答

    我正在使用C++套接字。该程序只需要一个HTTP页面,将其读入缓冲区buf[512],然后显示缓冲区。但是,页面可以包含比缓冲区更多的数据,因此如果没有剩余空间,它将被切断。我可以使缓冲区大小更大,但这看起来不是一个好的解决方案。这是我正在使用的代码: char buf[512]; int byte_count = recv(sockfd, buf, sizeof(buf), 0); 什么是

    1热度

    2回答

    问题几乎都在标题中。 我想知道,考虑到: - 我使用原始套接字(在GNU/Linux上); - 选项IP_HDRINCL已设置,以便我自己制作IP标头。 由于dest IP地址是在制作好的IP头文件中提供的,dst_addr参数是否仍然起作用或者是完全没用的&只是在这里导致函数原型是这样的吗?

    3热度

    1回答

    我想设置不分段标志上的IP数据包。有没有办法通过setsockopt()函数或通过sendto()函数的标志来实现? 我可以使用“普通”套接字来做到这一点,还是必须使用原始套接字并自己构建整个IP标头,并将其偏移字段设置为IP_DF(在ip.h中定义)?

    4热度

    2回答

    我希望在汇编程序中编写可启动的程序,该程序能够发送和接收网络数据包。我不希望使用任何图书馆,我想自己创建它(并在此过程中学习)。不幸的是,我无法找到关于与最低级别上的网卡通信的任何信息(发送原始套接字)。我相信有必要使用OUT和IN指令,但我找不到有关分配给网卡的端口的任何信息(或者如何找到它,如果它不总是相同的话)。有人能指出我的方向吗? ;-)

    24热度

    2回答

    我的应用程序正在CentOS 5.5上运行。 我使用原始套接字发送数据: sd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); if (sd < 0) { // Error } const int opt_on = 1; rc = setsockopt(m_SocketDescriptor, IPPROTO_IP, IP_HDRINCL, &o