Python 实现 Ping 功能(直接调用Windows 命令)
【生活经历分享】华师国培 华师伴学 合同都是坑 消费者付款后无法退款和华师国培签合同需小心,合同中都是保护华师的条款,没有保护消费者的条款。
收到钱,就算你因对培训质量不满意,也不能退款。因合同消费者维权肯定十分艰难。
华师伴学的授课方式是看录制的视频,不是真人现场教学。是否是您和孩子想要的学习方式?
各位打算报名的,交费要谨慎!
其他人在小红书上发的,转:
深圳市华师国培教育科技有限公司,黑心机构,大家擦亮眼睛,别被骗了,消费欺诈,虚假承诺,签合同各种坑,收到钱了不履行承诺不退款,乱扣费,维权艰难! - 小红书
由于使用 Python Scapy 提供的功能实现 ping 一直无法 ping 通远程设备,见:https://www.cnblogs.com/91program/p/19143636
所以采用调用系统命令行的方式,发现是可以 ping 通的。
1 # os_remote = sysPingOneAddress("172.20.3.34") 2 3 class sysPingOneAddress(threading.Thread): 4 def __init__(self, ipStr: str): 5 super().__init__() 6 self.setDaemon(True) 7 self.running = None 8 self.ipStr = ipStr 9 self._stop_event = threading.Event() 10 self.start() 11 12 @staticmethod 13 def os_ping(target_ip: str): 14 ret = True 15 import subprocess 16 17 # 使用 subprocess.run() 执行 ping 命令 18 print(f"call system command: ping {target_ip}") 19 # -n 1 指定了发送 4 个 ICMP 回显请求(在Windows中是 -n 参数,而在Linux中是 -c) 20 result = subprocess.run(['ping', '-n', '4', target_ip], stdout=subprocess.PIPE, text=True) 21 # 打印输出结果 22 print(result.stdout) 23 if -1 != result.stdout.find("请求找不到主机") and -1 != result.stdout.find("无法访问目标主机"): 24 ret = False 25 if -1 != result.stdout.find("请求超时"): 26 ret = False 27 28 return ret 29 30 def run(self): 31 print(f"ping {self.ipStr} start...") 32 while self._stop_event: 33 time.sleep(6) 34 ret_val = sysPingOneAddress.os_ping(self.ipStr) 35 36 def stop(self): 37 print("ping end.") 38 self.running = False # 设置标志位为 False 来停止 39 self._stop_event.set() 40 self.join()

浙公网安备 33010602011771号