很多文章不能更新至CSDN,可以关注我的同名公众号(程序员启航)
网络编程大家都学过吧?
socket -> bind -> listen -> accept-> recv/recvfrom -> send/sendto
一气呵成,什么select、poll、epoll多路复用模型信手拈来。
但这一套东西,只是开发建立在传输层TCP、UDP之上的应用程序。
你有没有想过,如何编程批量发送一批TCP SYN握手包,来进行端口扫描?
如何编程来发送一个伪造了IP地址的ARP数据包和IP数据报文?
甚至,如何编程来发送一个伪造了MAC地址的以太网数据帧?
一旦你掌握了上面几招,玩转数据包不是问题,开发各种神器不在话下。但一定要用在正途上,不要面向监狱编程哦~
那到底如何构造发送各种各样的数据包呢?今天给大家介绍一个强大的玩意:scapy
这是一个强大的数据包构造工具,你可以在Python中使用它,是时候喊一声:Python大法好了!
ARP
我们拿ARP开刀,ARP是地址解析协议,局域网中通信需要使用网卡的MAC地址,而网络层通信使用的是IP地址&