1. #! python
  2. # -*- coding: utf-8 -*-
  3. __author__ = 'Deen'
  4. import os
  5. import threading
  6. import argparse
  7. # 从网关获取所有IP,如192.168.1.1-255,返回一个list存储
  8. def get_all_ip(gateway):
  9. ip = list()
  10. # 改进,支持指定范围IP
  11. ip_prefix = gateway.split('.')
  12. # 对输入的gateway进行判断
  13. # 第一种输入192.168.1.1-255
  14. if '-' in gateway:
  15. parts = ip_prefix[3].split('-')
  16. start = int(parts[0])
  17. end = int(parts[1])
  18. prefix = ip_prefix[0] + '.' + ip_prefix[1] + '.' + ip_prefix[2] + '.'
  19. for i in range(start, end):
  20. ip.append(prefix + str(i))
  21. # 第二种只输入一个ip
  22. else:
  23. ip_prefix = ip_prefix[0] + '.' + ip_prefix[1] + '.' + ip_prefix[2] + '.'
  24. for i in range(255):
  25. ip.append(ip_prefix + str(i))
  26. # 返回一个包含所有IP的list
  27. return ip
  28. def ping(ip):
  29. # 执行系统命令以一个管道返回
  30. output = os.popen('ping -n 2 %s' % ip)
  31. result = output.read().encode('utf-8')
  32. # 返回命令执行结果
  33. # print result
  34. # 根据返回结果当中是否包含关键词TTL 进行判断
  35. if 'TTL' in result:
  36. print('[-] ' + ip + '\tis up')
  37. def main(ip):
  38. # 采用多线程,创建一个线程池
  39. threads = []
  40. ips = get_all_ip(ip)
  41. for ip in ips:
  42. # 加入线程
  43. t = threading.Thread(target=ping, args=(ip,))
  44. threads.append(t)
  45. print '[+] Scaning start'
  46. for i in threads:
  47. i.start()
  48. for i in threads:
  49. t.join()
  50. if __name__ == '__main__':
  51. parser = argparse.ArgumentParser(description='This a script to scan the LAN')
  52. parser.add_argument('ip', default='192.168.1.1', help='Eg: 192.168.1.1 or 192.168.1.1-33')
  53. args = parser.parse_args()
  54. main(args.ip)

写得比较简单,还有还多要写

TO DO

  • 返回目标信息,像scanport一样
  • 如果是wifi,进行ddos攻击,让目标下线

Python 局域网主机存活扫描的更多相关文章

  1. Linux中使用python测试主机存活 Linux系统CentOS Linux release 7.3.1611 (Core) py版本Python 2.7.5

    下面是最初的情况 #/usr/bin/env python # -*- coding: utf-8 -*- import os import time import subprocess import ...

  2. python多线程与多进程--存活主机ping扫描以及爬取股票价格

    python多线程与多进程 多线程: 案例:扫描给定网络中存活的主机(通过ping来测试,有响应则说明主机存活) 普通版本: #扫描给定网络中存活的主机(通过ping来测试,有响应则说明主机存活)im ...

  3. 【网络编程3】网络编程基础-arp请求(局域网主机扫描)

    ARP协议 ARP(Add ress Resolution Protocol)地址解析协议位于数据链路层,是根据IP地址获取MAC地址的一个协议. ARP 查看指令 arp -a 显示所有接口的当前A ...

  4. python局域网alive ip侦听

    python局域网alive ip侦听 作者:vpoet mails:vpoet_sir@163.com 注:写着玩,欢迎copy # -*- coding: cp936 -*- # coding = ...

  5. Linux常用网络工具:批量主机服务扫描之nmap

    Linux下有很多强大网络扫描工具,网络扫描工具可以分为:主机扫描.主机服务扫描.路由扫描等. 之前已经写过常用的主机扫描和路由扫描工具,nmap支持批量主机扫描和主机服务扫描. nmap的安装直接使 ...

  6. 7.python实现高效端口扫描器之nmap模块

    对于端口扫描,使用的最多的就是nmap这个工具,不想python已经强大到,提供了nmap这个扫描端口的模块. 本片文章主要介绍nmap模块的两个常用类: PortScanner()类,实现一个nma ...

  7. Python中的网络扫描大杀器Scapy初探

    Python中的网络扫描大杀器Scapy初探     最近经历了Twisted的打击,这个网络编程实在看不懂,都摸不透它的内在逻辑,看来网络编程不是那么好弄的.还好,看到了scapy,这种网络的大杀器 ...

  8. 利用Ossim系统进行主机漏洞扫描

    利用Ossim系统进行主机漏洞扫描 企业中查找漏洞要付出很大的努力,不能简单的在服务器上安装一个漏洞扫描软件那么简单,那样起不了多大作用.这并不是因为企业中拥有大量服务器和主机设备,这些服务器和设备又 ...

  9. Linux常用网络工具:批量主机服务扫描之netcat

    netcat又叫做瑞士军刀,是黑客和系统管理员常用的网络工具,最初开发的目的是文件传输,后来发展出很多强大的功能,比如也可以完成批量主机服务扫描. 之前介绍了另一个更常用的批量主机服务扫描工具:nma ...

随机推荐

  1. 海康PTZ云台摄像头调试之直接控制云台(C#)

    众所周知,海康的摄像头sdk较为完善,但是对于新手来说还是有点麻烦. 今天写一篇随笔给大家展示下怎么控制海康摄像头的云台(前提是有ptz云台设备) 1.sdk准备 本文基于C#的frame来开发一个p ...

  2. 从服务间的一次调用分析整个springcloud的调用过程(一)

    首先我们知道springcloud是一个微服务框架,按照官方文档的说法,springcloud提供了一些开箱即用的功能: 1 分布式/版本化配置 2 服务的注册与发现 3 路由 4 服务到服务之间调用 ...

  3. 看我如何使用 shell 来获取所有 KVM 虚拟机的 IP 地址

    文章目录 脚本说明 脚本展示 效果展示 此脚本的初衷是因为,KVM创建的桥接网卡的虚拟机,无法使用virsh domifaddr命令获取IP,而创建的nat网卡的虚拟机,则可以直接使用virsh do ...

  4. suse 12 二进制部署 Kubernetets 1.19.7 - 第07章 - 部署kube-controller-manager组件

    文章目录 1.7.部署kube-controller-manager 1.7.0.创建kube-controller-manager请求证书 1.7.1.生成kube-controller-manag ...

  5. 图解python | 安装与环境设置

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  6. 【硬件基础知识】指令集框架(ISA:Instruction Set Architecture)

    指令框架(ISA:Instruction Set Architecture) 定义 指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系, ...

  7. (二)ECMA 335 解析 /ECMA 334

    C#被ECMA组织,定义为了<ECMA334>标准化语言. 什么概念? 比如说,上一次成为ECMA标准的语言是Javascript.即<ECMA262>标准. <ECMA ...

  8. Oracle数据库常用命令整理

    转至:https://blog.csdn.net/creativemobile/article/details/8982164 1监听 (1)启动监听 lsnrctl start (2)停止监听  l ...

  9. Qt:QSqlDatabase

    0.说明 QSqlDatabase类处理与数据库连接相关的操作.一个QSqlDatabase实例就代表了一个连接,连接时要提供访问数据库的driver,driver继承自QSqlDriver. 通过静 ...

  10. WPF空格换行

    换行 (写在Text中才起作用) 空格  https://www.cnblogs.com/dc10101/archive/2011/11/14/2248432.html