python 批量监测端口情况

1690阅读 0评论2016-07-14 eatmyshort
分类:Python/Ruby

    最近有客户反应,他们的呼叫中心系统经常会出现弹屏后,电话无法转接的情况。经初步判断排除是软件问题,应该是二个网络连接有闪断或延时的问题,但对方认为是系统不可靠,自己的网络没有问题,要我们拿出证据来。
    原来考虑随便下载个软件监检下,但考虑到在网系统,最后还是考虑用python。
    这个脚本参考了网上的一些资料,考虑到实际使用场景完善,可用于批量检测本机及网络端口开放情况。 仅供参考。

ip.txt 格式:
192.168.1.100 33001
192.168.1.101 33001

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding: gbk -*-
  3. import socket,time
  4. while 1:
  5.     file_obj = open('ip.txt')
  6.     for line in file_obj:
  7.         try:
  8.             sc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  9.             ip = line.split()[0]
  10.             port = int(line.split()[1])
  11.             print ip,port
  12.             #设置超时时间(0.0)
  13.             sc.settimeout(2)
  14.             sc.connect((ip,port))
  15.             timenow=time.localtime()
  16.             datenow = time.strftime('%Y-%m-%d %H:%M:%S', timenow)
  17.             logstr="%s:%s 连接成功->%s \n" %(ip,port,datenow)
  18.             print logstr
  19.             sc.close()
  20.         except:
  21.             file = open("log.txt", "a")
  22.             timenow=time.localtime()
  23.             datenow = time.strftime('%Y-%m-%d %H:%M:%S', timenow)
  24.             logstr="%s:%s 连接失败->%s \n" %(ip,port,datenow)
  25.             print logstr
  26.             file.write(logstr)
  27.             file.close()
  28.     print "sleep 10....."
  29.     time.sleep(10)


上一篇:linux利用iconv转换文档编码
下一篇:awk之gensub()函数详解