Python socket 监控 端口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python socket 监控 端口相关的知识,希望对你有一定的参考价值。
下图为脚本源代码,执行后 无显示 求解!
参考技术A 这个?想怎么显示?tcp_monitor调用了没有?即使调用了,connect到服务器,又没有发请求,又没有收数据,没什么好显示的呀。追问
想测试一个服务器80 端口的状态 如果80 端口正常 返回 打印True 否则false
参考技术B 脚本里没有调用tcp_monitor?即使有,执行了估计你还是看不到链接,执行完立即就close了追问
如果我想测试一个服务器80 端口的状态 如果80 端口正常 返回 True 否则false 并发送邮件或者print
本回答被提问者采纳python实现端口扫描监控,宕机则发送邮件
import socket def get_ip_status(ip,port): server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: server.connect((ip,port)) print(‘{0} port {1} is open‘.format(ip,port)) except Exception as err: print(‘{0} port {1} is down‘.format(ip,port)) send_mail(ip,port)//宕机就发送邮件 finally: server.close() def send_mail(ip,port): fromAddr = "*********@126.com" toAddr = "*********@126.com" password = "************" smtp_server = "smtp.126.com" import smtplib from email.mime.text import MIMEText msg = MIMEText("Test body") //处理邮件文本内容 msg[‘Subject‘] = "the {0}:{1} is down".format(ip,port) //msg[‘Subject‘] = ‘%s %d is down!!!‘ %(ip,port) server = smtplib.SMTP(smtp_server,25) server.login(fromAddr,password) server.sendmail(fromAddr,toAddr,msg.as_string()) ‘‘‘ if __name__ == ‘__main__‘: host = ‘172.16.60.223‘ port = [9000,9001,9002,9003,9008,9009] for p in port: get_ip_status(host,p) ‘‘‘ //多个ip不同端口扫描 if __name__ == ‘__main__‘: host_port = {‘172.16.60.223‘:[9000,9001,9002,9003,9008,9009],‘172.16.60.40‘:[8003,8004,8005,8007,8011]} for h,p in host_port.items(): for p in p: get_ip_status(h,p)
以上是关于Python socket 监控 端口的主要内容,如果未能解决你的问题,请参考以下文章