博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用户态处理arp、ndisc neighbour solication 报文
阅读量:5095 次
发布时间:2019-06-13

本文共 1253 字,大约阅读时间需要 4 分钟。

问题背景:

  想要协议栈给不是接口ip的报文,ipv4回复arp request,ipv6回复 ndisc solication。

#include 
//调用该函数成为一个守护进程void daemon(void){ return;}/*ipv4*/void parent(void){ //创建socket socket(); while(1) { recvfrom(); //正确性检查 write_log(); switch () { default : continue; case : ; } //判断是否在地址池中 if () continue; arp_reply(); } return;}/*ipv6*/void child(void){ //创建socket socket(); while(1) { recvfrom(); //正确性检查 write_log(); //判断协议类型,只处理ndisc ns报文 switch () { default : continue; //while cycle case : ; } if () continue; icmpv6_ndisc_ns(); } return;}int main(){ pid_t pid; daemon(); if (pid > 0) { parent(); } else if (pid == 0){ child(); } else { perror("fork error"); return -1; } return 0;}

涉及技术:

  1.守护进程(apue中有通用code)

  2.raw socket抓包

  3.文件读写锁

  4.用户态回复数据包(参见arposion)

  5.写日志

 应用:

  1.可以使用这个程序导致同一局域网内pc ip地址冲突,因为是pc使用一个ip地址时候都会用arp、icmpv6做重复地址检测。进一步可以设定mac地址,从而实现局域网内的mac、ip地址绑定。

 

转载于:https://www.cnblogs.com/rivsidn/p/10561364.html

你可能感兴趣的文章
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
Vue音乐项目笔记(三)
查看>>
遍历Map对象
查看>>
计算剪贴板里仿制的代码行数
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
#Leetcode# 209. Minimum Size Subarray Sum
查看>>
C#语言-04.OOP基础
查看>>
1)session总结
查看>>
PHP深浅拷贝
查看>>
SDN第四次作业
查看>>
ActiveMQ(4) ActiveMQ JDBC 持久化 Mysql 数据库
查看>>
DM8168 DVRRDK软件框架研究
查看>>
django迁移数据库错误
查看>>
epoll学习01
查看>>
yii 跳转页面
查看>>
闭包问题
查看>>
C#一个FTP操作封装类FTPHelper
查看>>
Linux运维基础入门(二):网络基础知识梳理02
查看>>
你所不知道的 CSS 阴影技巧与细节
查看>>
MyBatis框架的使用及源码分析(三) 配置篇 Configuration
查看>>