使用python检测主机存活端口及检查存活主机


Posted in Python onOctober 12, 2015

监测主机存活的端口

#!/usr/bin/env python
# coding-utf
import argparse
import socket
import sys
#author: wolf_ribble
def scan_ports(host,start_port,end_port):
  """Scan remote hosts"""
  try:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  except socket.error,error_msg:
    print 'Socket creation failed.Error code:' + str(error_msg[]) + 'Erroe message:' + error_msg[]
    sys.exit()
  try:
    remote_ip = socket.gethostbyname(host)
  except socket.error,error_msg:
    print error_msg
    sys.exit()
  end_port +=
  for port in range(start_port,end_port):
    try:
      sock.connect((remote_ip,port))
      print 'Port' + str(port) + 'is ipen'
      sock.close()
      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except socket.error,error_msg:
      #print error_msg
      pass
if __name__ == '__main__':
  parser = argparse.ArgumentParser(description='remote port scaner')
  parser.add_argument('--host',action="store",dest="host",default='www.wealink.com')
  parser.add_argument('--start-port',action="store",dest="start_port",default='',type=int)
  parser.add_argument('--end-port',action="store",dest="end_port",default='',type=int)
  given_args = parser.parse_args()
  host, start_port ,end_start = given_args.host , given_args.start_port,given_args.end_port
  scan_ports(host,start_port,end_start)

使用python 检查存活主机

这里的设备对存活状态不是很敏感,就使用了脚本来检测存活状态,之前用shell做了一个,实现的功能是使用Ping命令检测服务器存活,不在线会将不在线的服务器及IP通过邮件发送提醒,现在在学习python,改了一个python版本。需要检测的主机我存储在/scrip/host中,格式为:

HOST  IP

好了,废话少说,上脚本:

#coding=utf-8
import subprocess
import os,time,sys,re
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
server=smtplib.SMTP('smtp.126.com')
start_Time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
mj=open('/scrip/host','r')
mi=open('/scrip/text','w')
mihost=mj.readlines()
mj.close()
online=[]
i=0
for i in range(len(mihost)):
  host=mihost[i][0:14].strip()
  ip=mihost[i][14:].strip()
  p = subprocess.Popen(["ping -c 1 -i 0.2 -W 3 "+ ip],
              stdin = subprocess.PIPE,
              stdout = subprocess.PIPE,
              stderr = subprocess.PIPE,
              shell = True)
  out = p.stdout.read()
  regex = re.compile("time=\d*", re.IGNORECASE | re.MULTILINE)
  if len(regex.findall(out)) > 0:
     online.append(host)
  else:
    fail_host =host + ' \t'+ ip
    mi.write(fail_host)
    mi.write('\n')
mi.close()
fail=open('/scrip/text','r')
number=fail.readlines()
fail_host=''.join(number)
context = 'Scan Time:' + '\t '*2 +' ' *3 + start_Time +'\n'+ 'Not Online Devices:' +'\t'+ repr(len(number)) +'\n'+ '\n' +'HOST' + ' '*12 + 'I P' + '\n' + fail_host
msg = MIMEMultipart('alternative')
msg['Subject'] = 'Not Online Device'
part = MIMEText(context, 'plain', 'utf-8')
msg.attach(part)
server=smtplib.SMTP('smtp.126.com')
server.login("邮箱用户名","邮箱密码")
maillist=['接收邮箱',]
server.sendmail("发送邮箱地址",maillist,msg.as_string())

运行的结果:

使用python检测主机存活端口及检查存活主机

Python 相关文章推荐
Python的Django框架使用入门指引
Apr 15 Python
总结Python中逻辑运算符的使用
May 13 Python
Python实现学生成绩管理系统
Apr 05 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
django解决跨域请求的问题
Nov 11 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
Python echarts实现数据可视化实例详解
Mar 03 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 #Python
Python监控主机是否存活并以邮件报警
Sep 22 #Python
Python二分查找详解
Sep 13 #Python
基python实现多线程网页爬虫
Sep 06 #Python
python杀死一个线程的方法
Sep 06 #Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 #Python
Python实现身份证号码解析
Sep 01 #Python
You might like
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
php框架知识点的整理和补充
2021/03/01 PHP
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
python使用fork实现守护进程的方法
2017/11/16 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
大学生毕业自荐信
2013/10/10 职场文书
三下乡活动方案
2014/01/31 职场文书
企业总经理岗位职责
2014/02/13 职场文书
团队精神的演讲稿
2014/05/14 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
三好学生事迹材料
2014/12/24 职场文书
校运会加油稿大全
2015/07/22 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript