簡體   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