当以太网适配器状态改变 Python 时触发事件

Posted

技术标签:

【中文标题】当以太网适配器状态改变 Python 时触发事件【英文标题】:Trigger event when ethernet adapter state changes Python 【发布时间】:2021-11-22 19:48:27 【问题描述】:

尝试创建一个在后台运行 24x7 的程序,并执行由 PC/笔记本电脑中以太网适配器端口的上/下变化(即连接/断开连接状态)触发的操作。如何在 Python 中实现相同的功能?

例如:

conn = True
def conCheck()
    if conn == False:
        <trigger onward events>
    else:
        <else statements>

任何帮助将不胜感激。正在努力学习python。

感谢和问候

【问题讨论】:

【参考方案1】:

你可以编写一个函数来请求一个网页来检查互联网连接。

如果没有互联网,您可能会收到 ConnectionError。 否则,您将收到来自 URL 的响应。即您已连接到互联网。

使用以下代码并尝试中断您的代码正在执行的连接。当您的互联网中断时,您会看到不同之处。

import time

import requests

url = "http://www.kite.com"
timeout = 5
conn = True


def conCheck():
    try:
        request = requests.get(url, timeout=timeout)
        print("Connected to the Internet")
        return True
    except (requests.ConnectionError, requests.Timeout) as exception:
        print("You're not connected to the internet. ")
        return False


while True:
    conCheck()
    time.sleep(1)

【讨论】:

您好 Vikas,感谢您的及时回复。我的目标是检测外部设备连接(例如,一名 rouge 员工将他的笔记本电脑连接到我的隔离网络中的一个系统)并采取未来的行动,如封屏、制作日志、关闭服务等(基于是否能够每次我的 eth 端口启动时是否到达我的网关)。在那种情况下,这将行不通。我打算从我的 ARP 中获取他的 MAC 来识别机器并在他们不知道的情况下做一些其他的事情。因此,需要读取端口物理上/下状态以进行相应的分支。

以上是关于当以太网适配器状态改变 Python 时触发事件的主要内容,如果未能解决你的问题,请参考以下文章

jQuery的事件编程

当 css 值改变时触发事件

JS 当html改变时触发事件

jquery “做页面滚动到某屏时改变状态标题” 所用知识点记录

Input 控件的Onchange 与onBlur 事件区别?

C# 中 form 编程 datagridview 值改变时触发的事件