Python脚本,探测存活的IP(一)

1.目录结构:
.
├── Alarm
│   └── __init__.py
├── Config
│   ├── Get_ip.py
│   ├── TanCeHostIp.txt #这个txt定义存储探活的ip列表
│   ├── __init__.py
│   └── __pycache__
│       ├── Get_ip.cpython-310.pyc
│       └── __init__.cpython-310.pyc
├── Monitor
│   ├── Send_Mail.py
│   ├── Tanhuo.py
│   ├── __init__.py
│   └── __pycache__
│       ├── Send_Mail.cpython-310.pyc
│       └── __init__.cpython-310.pyc
├── Routing_Inspection
└── __main__.py

2.今天写的是Monitor下的针对IP的探活并且发生邮件。

3.下面是Get_ip模块:

#下面是获取IP的函数

def Get_ip():

#获取当前文件所在的目录

import os

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

#打开获取目录下的ip.txt文件

with open(BASE_DIR + '/TanCeHostIp.txt','r') as f:

#读取文件中的内容

ips = f.read()

#将读取的内容转换成列表

ips = ips.split('\n')

#去除列表中的空格

ips = [ip.strip() for ip in ips if ip.strip()]

#返回列表

return ips

4.发送邮件的模块
 

# 这是一个使用QQ邮箱发送smtp的模块

# 1.引入需要的模块

import smtplib

# 2.引入邮件模块

from email.mime.text import MIMEText

# 3.引入邮件头模块

from email.header import Header

# 4.引入时间模块

import time

# 5. 定义一个变量来存放当前时间

now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())

# 4.定义一个函数,用来发送邮件

def Send_Mail(live_ip):

# 4.1_定义发送邮箱

sender = 'xxx'  #需要自己的邮箱

# 4.2_定义接收邮箱

receiver = 'xxxx'  #需要自己的邮箱

# 4.3_定义发送主题

# 发送主题中包含当前的时间

subject = '这是一封主机存活测试邮件' + now_time

# 4.4_定义发送内容

content = '这是一封主机存活测试邮件,存活的主机有:' + str(live_ip)

# 4.5_定义发送服务器

smtpserver = 'smtp.qq.com'

# 4.6_定义发送邮箱的用户名和密码

username = xxxxx' #需要自己的邮箱

password = 'xxxxxxx' #需要自己写smtp的密码

# 4.7_定义邮件内容

message = MIMEText(content, 'plain', 'utf-8')

# 根据RFC5322协议,邮件标头中需要包含'From'信息。这个信息包含发件人的邮件地址和名称

message['From'] = sender

# 4.8_定义邮件主题

message['Subject'] = Header(subject, 'utf-8')

# 4.9_连接发送服务器

smtp = smtplib.SMTP()

# 4.10_连接发送服务器

smtp.connect(smtpserver)

# 4.11_登录发送服务器

smtp.login(username, password)

# 4.12_发送邮件

smtp.sendmail(sender, receiver, message.as_string())

# 4.13_关闭发送服务器

smtp.quit()

5.进行调用的TanHuo模块
 

#这个模块来实现对主机的存活检测

# 1.通过ping命令来检测主机的存活

# 1.1_获取项目根目录下的路径

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 1.2_将BASE_DIR添加到系统环境变量中

import sys

sys.path.append(BASE_DIR)

# 1.3_引入Config文件夹下的Get_ip模块中的get_ip()函数

from Config.Get_ip import Get_ip

# 1.4_引入ping3模块中的ping()函数,用来检测主机的存活

from ping3 import ping

# 1.5_定义一个函数,用来检测主机的存活

def Check_ip():

# 1.5.1_使用ips使用get_ip()函数获取TanCeHostIp.txt文件中的ip地址

ips = Get_ip()

# 1.5.2_定义一个空列表,用来存放存活的主机

live_ip = []

# 1.5.3_循环遍历ips列表中的ip地址

for ip in ips:

# 1.5.3_使用ping()函数检测主机的存活

result = ping(ip)

# 1.5.4_判断主机是否存活

if result:

# 1.5.5_将存活的主机添加到live_ip列表中

live_ip.append(ip)

# 1.5.6_返回存活的主机

return live_ip

# 2.引入Monitor文件夹下的Send_Mail模块中的Send_Mail()函数

from Monitor.Send_Mail import Send_Mail

# 2.1 使用Send_Mail()函数发送邮件,邮件内容为存活的主机

Send_Mail(Check_ip())








 




 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A ?Charis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值