使用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 合并文件的具体实例
Aug 08 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
Python基础中所出现的异常报错总结
Nov 19 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
Django框架创建项目的方法入门教程
Nov 04 Python
python绘制BA无标度网络示例代码
Nov 21 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
使用Django搭建网站实现商品分页功能
May 22 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHPLog php 程序调试追踪工具
2009/09/09 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python线程中的同步问题及解决方法
2019/08/29 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
汽车专业毕业生推荐信
2013/11/12 职场文书
大学自我鉴定
2013/12/20 职场文书
大学生职业生涯规划书范文
2014/01/14 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android
关于MySQL中explain工具的使用
2023/05/08 MySQL