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 监控 端口的主要内容,如果未能解决你的问题,请参考以下文章

Python监控服务端口并报警

如何解决python socket server重启后端口被占用的问题

python socket 端口测试

Python:监听两个端口

Python网络开发基础,实现udp聊天器小案例

python扫面端口