Skip to main content

Command Palette

Search for a command to run...

#raw-socket

Articles tagged with #raw-socket

  1. 使用raw socket发送magic packet

    Magic Packet是进行网络唤醒的数据包,将这个数据包以广播的形式发到局域网上,与数据包中所关联的MAC相同的电脑就会被唤醒开机,通常我们都是使用UDP报文的形式来发送这个数据包,但实际上在进行网络唤醒的时候,只要报文中包含Magic Packet应该就可以唤醒相关的计算机,与IP协议、UDP协议没有任何关系,本文将试图抛开网络层(IP层)和传输层(TCP/UDP层),直接在数据链路层发出Magic Packet,并成功实现网络唤醒,本文将提供完整的源代码。阅读本文需要有较好的网络编程基础...

    Feb 9, 20232 min read52
    使用raw socket发送magic packet
  2. 接收arp请求并发送回应的实例

    ARP协议在网络编程中有着重要的地位,是一个工作在数据链路层的协议,本文简单介绍了ARP协议,用一个实例查看收到的ARP请求,并对该请求发出ARP回应,实例有完整的源代码,使用C语言在Linux下实现,代码中有详细的注释;阅读本文需要有一定的网络编程基础,了解OSI的网络模型,本文对初学者有一定的难度。 1. ARP协议 ARP(Address Resolution Protocol),地址解析协议;在局域网上通过IP地址获取物理地址MAC的协议,该协议工作在数据链路层; 为什么需要ARP协...

    Jan 12, 20233 min read80
    接收arp请求并发送回应的实例
  3. 如何使用raw socket发送UDP报文

    使用raw socket发送报文比接收报文要复杂一些,因为需要在程序中构建数据链路层、网络层和传输层的报头,本文以发送UDP报文为例说明在使用raw socket时如何构建数据链路层、网络层和传输层的报头并发送报文,文中给出了完整的源程序;阅读本文需要掌握基本的IPv4下的socket编程方法,本文对初学者有一定难度。 1. 前言 阅读本文前可以考虑先阅读一下我的另外一篇文章《Linux下如何在数据链路层接收原始数据包》,那篇文章中已经介绍过的一些概念,本文中将不再赘述;下面仅罗列一些曾经在...

    Dec 27, 20224 min read163
    如何使用raw socket发送UDP报文
  4. Linux下如何在数据链路层接收原始数据包

    大多数的网络编程都是在应用层接收数据和发送数据的,程序员无需关注报文的各种报头,网络协议栈会解决这些问题,本文介绍在数据链路层的网络编程方法,介绍如何在数据链路层直接接收从物理层发过来的原始数据包,要得到数据,必须自己解开数据链路层、网络层和传输层的报头,文章给出了一个完整的范例程序,希望本文能帮助读者对网络通信有更深刻的理解;阅读本文需要具备基本的使用socket进行网络编程的能力,熟悉OSI的网络模型,本文对初学者有一定的难度。 1. 概述 linux下进行网络编程通常都是使用socke...

    Dec 8, 20227 min read300
    Linux下如何在数据链路层接收原始数据包