[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
python3 版
  1. import socket
  2. import pathlib
  3. import subprocess
  4. class IpTest(object):
  5.     def __init__(self, ip_address_file:pathlib.Path, res_file:pathlib.Path) -> None:
  6.         
  7.         self.ip_address_file = ip_address_file
  8.         self.ping_res_file = res_file
  9.         self.ip_address_list = []
  10.     def load_ip_address(self) -> None:
  11.         self.ip_address_list.clear()
  12.         with self.ip_address_file.open() as f:
  13.             for ip in f.readlines():
  14.                 self.ip_address_list.append(ip.strip())
  15.     def run_ip_test(self) -> None:
  16.         pass
  17. class PingIP(IpTest):
  18.     def __init__(self, ip_address_file: pathlib.Path, res_file: pathlib.Path) -> None:
  19.         super().__init__(ip_address_file, res_file)
  20.     def run_ip_test(self) -> None:
  21.         res_file = self.ping_res_file.name
  22.         if self.ping_res_file.exists():
  23.             self.ping_res_file.unlink()
  24.         for ip in self.ip_address_list:
  25.             
  26.             print(f"start: ping {ip} -n 2 >> {res_file}")
  27.             subprocess.run(f"ping {ip} -n 2 >> {res_file}", shell=True)
  28.             print(f"done: ping {ip} -n 2 >> {res_file}")
  29. class Telnent(IpTest):
  30.     def __init__(self, ip_address_file: pathlib.Path, res_file: pathlib.Path) -> None:
  31.         super().__init__(ip_address_file, res_file)
  32.     @staticmethod
  33.     def connect_ip(ip:str, port:int) -> bool:
  34.         sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  35.         sck.settimeout(2) # 2 second
  36.         try:
  37.             sck.connect((ip,port))
  38.         except:
  39.             return False
  40.         finally:
  41.             sck.close()
  42.         return True
  43.     def run_ip_test(self) -> None:
  44.         
  45.         ip_ino:str
  46.         with self.ping_res_file.open("w") as f:
  47.             for ip_ino in self.ip_address_list:
  48.                 print(f"正在连接:{ip_ino}")
  49.                 ip,port = ip_ino.split(" ")
  50.                 if self.connect_ip(ip,int(port)):
  51.                     f.write(f"{ip_ino}端口正常\n")
  52.                 else:
  53.                     f.write(f"{ip_ino}端口异常\n")
  54. if __name__ == "__main__":
  55.     p_set = []
  56.     p_set.append(PingIP(pathlib.Path("ip_list.txt"), pathlib.Path("ping_result.txt")))
  57.     p_set.append(Telnent(pathlib.Path("port_list.txt"), pathlib.Path("Telnent_result.txt")))
  58.     for p in p_set:
  59.         p.load_ip_address()
  60.         p.run_ip_test()
复制代码
QQ:1972544783

TOP

回复 3# ylmaster


    这个有点困难,你首先得下载一个Python3.7,9 版本,然后并安装,随后将代码保存为 1.py ,还需复制iplist文件到1.py目录中,最后在cmd里面输入 python 1.py
QQ:1972544783

TOP

回复 5# ylmaster


             能搞,我搞不来!
QQ:1972544783

TOP

返回列表