ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:43.12KB ,
资源ID:18941488      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-18941488.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++操作Linux路由表哦.docx)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C++操作Linux路由表哦.docx

1、你也可以查看 /proc/net/route 文件。添加Null RoutesNull routes简单的忽略和它相匹配的包。使用它可以有效的屏蔽某个有问题的IP。例如:$ sudo route add 123.123.123.123 reject现在你不能和IP(123.123.123.123) 发送、接收数据包。移除Null Routes$ route del 123.123.123.123 reject在操作路由表时要格外小心;如果你不小心移除了和SSH相关的远程主机路由,你只能通过访问物理主机解决。使用C/C+更改路由表要使用程序添加null route,你需要使用ioctl,控制参数

2、SIOCADDRT:#include#include#include#includebool addNullRoute( long host )/ create the control socket.int fd = socket( PF_INET, SOCK_DGRAM, IPPROTO_IP );struct rtentry route;memset( &route, 0, sizeof( route ) );/ set the gateway to 0.struct sockaddr_in *addr = (struct sockaddr_in *)&route.rt_gateway;a

3、ddr-sin_family = AF_INET;addr-sin_addr.s_addr = 0;/ set the host we are rejecting.addr = (struct sockaddr_in*) &route.rt_dst;addr-sin_family = AF_INET;addr-sin_addr.s_addr = htonl(host);/ Set the mask. In this case we are using 255.255.255.255, to block a single/ IP. But you could use a less restric

4、tive mask to block a range of IPs./ To block and entire C block you would use 255.255.255.0, or 0x00FFFFFFFaddr = (struct sockaddr_in*) &route.rt_genmask;addr-sin_family = AF_INET;addr-sin_addr.s_addr = 0xFFFFFFFF;/ These flags mean: this route is created up, or active/ The blocked entity is a host

5、as opposed to a gateway/ The packets should be rejected. On BSD there is a flag RTF_BLACKHOLE/ that causes packets to be dropped silently. We would use that if Linux/ had it. RTF_REJECT will cause the network interface to signal that the/ packets are being actively rejected.route.rt_flags = RTF_UP |

6、 RTF_HOST | RTF_REJECT;route.rt_metric = 0;/ this is where the magic happens.if ( ioctl( fd, SIOCADDRT, &route ) )close( fd );return false;/ remember to close the socket lest you leak handles.close( fd );return true;注意:重启系统更改失效。上面代码的反操作,移除route:bool delNullRoute( long host )int fd = socket( PF_INET,

7、 SOCK_DGRAM, IPPROTO_IP );struct rtentry route;memset( &route, 0, sizeof( route ) );struct sockaddr_in *addr = (struct sockaddr_in *)&route.rt_gateway;addr-sin_family = AF_INET;addr-sin_addr.s_addr = 0;addr = (struct sockaddr_in*) &route.rt_dst;addr-sin_family = AF_INET;addr-sin_addr.s_addr = htonl(

8、host);addr = (struct sockaddr_in*) &route.rt_genmask;addr-sin_family = AF_INET;addr-sin_addr.s_addr = 0xFFFFFFFF;route.rt_flags = RTF_UP | RTF_HOST | RTF_REJECT;route.rt_metric = 0;/ this time we are deleting the route:if ( ioctl( fd, SIOCDELRT, &route ) )close( fd );return false;close( fd );return true;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2