使用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程序中的观察者模式结构编写示例
May 27 Python
详解Python文本操作相关模块
Jun 22 Python
CentOS7.3编译安装Python3.6.2的方法
Jan 22 Python
Linux下多个Python版本安装教程
Aug 15 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
Python shelve模块实现解析
Aug 28 Python
Python3 合并二叉树的实现
Sep 30 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 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类
2006/10/09 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
Symfony核心类概述
2016/03/17 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
Javascript window对象详解
2014/11/12 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
React组件中的this的具体使用
2018/02/28 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
python django 实现验证码的功能实例代码
2017/05/18 Python
python+opencv实现动态物体追踪
2018/01/09 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
Python使用xpath实现图片爬取
2020/09/16 Python
python简单实现插入排序实例代码
2020/12/16 Python
学年自我鉴定
2014/01/16 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
2014最新实习证明模板
2014/10/02 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
《小小的船》教学反思
2016/02/18 职场文书
Python集合的基础操作
2021/11/01 Python