使用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之集成开发环境(IDE)
Sep 12 Python
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
在Mac OS上搭建Python的开发环境
Dec 24 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
一行python实现树形结构的方法
Aug 09 Python
pywinauto自动化操作记事本
Aug 26 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python识别验证码的实现示例
Sep 30 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 Python
python中count函数知识点浅析
Dec 17 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
基于mysql的bbs设计(二)
2006/10/09 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php 生成文字png图片的代码
2011/04/17 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
php获取excel文件数据
2017/04/21 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
传智播客学习之java 反射
2009/11/22 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
js 通用订单代码
2013/12/23 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
python中的decimal类型转换实例详解
2019/06/26 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
班风学风建设方案
2014/05/06 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
客户答谢会活动方案
2014/08/31 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
Python基础详解之描述符
2021/04/28 Python
golang DNS服务器的简单实现操作
2021/04/30 Golang
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang