#!/usr/bin/pythonimport time
import socket
import message_all
import dMonitorConfig
timeout =3socket.setdefaulttimeout(timeout)
send_mail =[]
def write(con):
txt = open('/home/maxgao/port_send_count','a')
txt.write("%s\n" %con)
txt.close()
def tel(i,port,):
try:
port = int(port)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((i, port))
if result ==0:
print ("monitor %s:%s telnet ok" % (i,port ))
else:
print 'first telnet error...try again' print 'sleep 3 sec ...' time.sleep(3)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((i, port))
if result ==0:
pass
else:
print "second telnet %s port %s is error !" %(i,port),starttime
send_mail.append("%s :%s ClientSocket Error! " %(i,port))
sock.close()
except Exception as e:
pass
def main():
send_count=0hour=time.strftime("%Y-%m-%d %H", time.localtime( time.time() ) )
write(starttime)
for hostname,scanIP in dMonitorConfig.d_monitor.items():
admin = scanIP[0]
for remotelist in scanIP[1:]:
remoteIP = remotelist.split(":")[0]
remotePort = remotelist.split(":")[1]
tel(remoteIP,remotePort)
print send_mail
f = open('/home/maxgao/port_send_count','r')
for con in f.readlines():
if hour in con:
send_count+=1if len(send_mail)>=1 and send_count <=5:
message_all.mailTo("ops_monitor",["xxx@163.com"],"Port Scan Report","监控点%s -- 请求异常IP及端口信息 %s" % (hostname,send_mail))
write(hour)
if __name__ =="__main__":
starttime = time.ctime(time.time())
print starttime
main()