繁体   English   中英

如何在 python 中阻止本地网络中某个 IP 的 Internet 访问?

[英]How can I block Internet access for a certain IP in my local network in python?

我正在尝试找到一种方法来阻止某个 Mac 地址/内部 IP 在 python 中访问互联网(阻止 LAN 中的设备到 WAN)。

每个家庭的每个现代路由器都提供此选项,但我的有点旧,没有该功能。

我有网络方面的基本知识,并认为自己是 Python 的高级初学者,所以我准备迎接挑战,但仍然需要你的帮助。

*当然可以选择为该设备再次启用互联网

流量阻塞必须发生在路由器内部。 如果路由器没有这个功能,可以考虑换一个新的。

我知道我现在有点晚了,但是...您不一定像在路由器配置中那样阻止对机器的互联网访问。

您可以做的是实现类似于 ARP 欺骗器的功能。 基本上你会在中间人攻击中做什么。

您发送恶意 ARP 数据包来毒害目标的 ARP 表。 让它相信你的机器是路由器/默认网关。 这样您就可以拦截目标传输的每个数据包。 然后,您可以选择是否要路由它们。

如果您选择不转发数据包,则与 Internet 的连接将被切断。

如果您想将数据包转发到实际的路由器(为了允许目标访问互联网),您必须在您的机器上启用 IP 转发。

您可以通过在 Linux 上运行echo 1 >> /proc/sys/net/ipv4/ip_forward或在 Windows 上更改HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\IPEnableRouter的注册表项('1' 转发数据包, '0' 没有)。 默认情况下,IP 转发设置为 0。

请记住,您必须每隔几秒钟重新发送一次恶意 ARP 数据包,因为 ARP 表更新非常频繁。 这意味着您不必更改机器上的 IP 转发配置。 退出脚本一分钟或更短时间后,目标的 ARP 表将恢复正常,让他们再次访问互联网。

以下是一些您可能想了解的 Python 模块:

  • Scapy(数据包操作工具)
  • winreg(Windows 注册表)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM