使用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 七种邮件内容发送方法实例
Apr 22 Python
Python中的各种装饰器详解
Apr 11 Python
Python中一些自然语言工具的使用的入门教程
Apr 13 Python
Python实现截屏的函数
Jul 25 Python
简单谈谈Python中的json与pickle
Jul 19 Python
python生成随机图形验证码详解
Nov 08 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
linux下python中文乱码解决方案详解
Aug 28 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
Python tkinter实现日期选择器
Feb 22 Python
详解运行Python的神器Jupyter Notebook
Jun 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
php UBB 解析实现代码
2011/11/27 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
解决Python使用列表副本的问题
2019/12/19 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
三好学生先进事迹材料
2014/08/28 职场文书
租赁协议书
2015/01/27 职场文书
导游词范文
2015/02/13 职场文书
教师求职简历自我评价
2015/03/10 职场文书
为自己工作观后感
2015/06/11 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书