Python 多线程C段扫描、检测 Ping扫描脚本的实现

我就废话不多说了,大家还是直接看代码吧~

import subprocess as p
import time
import threading
from queue import Queue
def check_ip(ip):
      w=p.Popen('ping -n 2 '+ip,shell=True,stdout=p.PIPE,stderr=p.PIPE,encoding='gbk')
      result=w.stdout.read()
      # print(result)
      if 'TTL' in result:
        print(ip,'is Up')
def main():
  q=Queue()
  threads=[]
  threads_count=255
  ips = '39.156.69.'
  for i in range(1,255):
    q.put(ips+str(i))
    # print(q.get())
  for i in range(threads_count):
    t=threading.Thread(target=check_ip,args=(q.get(),))
    t.start()
    threads.append(t)
    time.sleep(0.2)
  for i in threads:
    i.join()
  print('all done')
if __name__ == '__main__':
  main()

补充知识:python并发扫描存活主机

看代码吧~

import subprocess
import os
import time

def ping(host):
  rc=subprocess.call('ping -c2 %s &> /dev/null' % host,shell=True)
  if rc == 0:
    print('%s:up'% host)
  else:
    print('%s:down'% host)
if __name__ == '__main__':
  ips=['176.130.10.%s' % i for i in range(1,255)]
  for i in ips:
    pid=os.fork()
    if pid==0:
      ping(i)
      exit(0)

以上这篇Python 多线程C段扫描、检测 Ping扫描脚本的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python使用多线程查询数据库的实现示例

    一.背景: 当数据量过大时,一个程序的执行时间就会主要花费在等待单次查询返回结果,在这个过程中cpu无疑是处于等待io的空闲状态的,这样既浪费了cpu资源,又花费了大量时间(当然这里主要说多线程,批量查询不在考虑范围,总会存在不能批量查询的情况),在这种非密集型运算(及大量占用cpu资源)的情况下在python中无疑运用多线程是一个非常棒的选择. 二.知识点: 数据库连接池的运用及优势,python中多线程的运用,队列的运用 数据库连接池:限制了数据库的连接最大个数,每次连接都是可以重复使用的,

  • 详解Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏览器或不同版本浏览器上,我们的web应用是否可以正常工作. 下面我们看看怎么利用python selenium进行自动化的跨浏览器测试. 什么是跨浏览器测试 跨浏览器测试是功能测试的一个分支,用以验证web应用能在不同的浏览器上正常工作. 为什么需要跨浏览器测试 通常情况下,我们都期望web类应用

  • python多线程semaphore实现线程数控制的示例

    前面写过一篇关于python多线程的实现的文章, 但是效果不是最佳的,写法也不是很好.通过网上学习,也了解到了semaphore这个东西. 百度给的解释:Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确.合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量. 一个有趣的例子:假设停车场只有三个车位,一开始三个车位都是空的.这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在

  • Python多线程实例教程

    本文以实例形式较为详细的讲解了Python的多线程,是Python程序设计中非常重要的知识点.分享给大家供大家参考之用.具体方法如下: 用过Python的人都会觉得Python的多线程很类似于Java的多线程机制,但是比JAVA的多线程更灵活.在早期的Python多线程实现中,采用了thread模块.例如: from time import ctime,sleep from thread import start_new_thread def loop1(): print "enter loop

  • Python 多线程C段扫描、检测 Ping扫描脚本的实现

    我就废话不多说了,大家还是直接看代码吧~ import subprocess as p import time import threading from queue import Queue def check_ip(ip): w=p.Popen('ping -n 2 '+ip,shell=True,stdout=p.PIPE,stderr=p.PIPE,encoding='gbk') result=w.stdout.read() # print(result) if 'TTL' in res

  • Python基于多线程实现ping扫描功能示例

    本文实例讲述了Python基于多线程实现ping扫描功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 import subprocess from Queue import Queue import threading class Pinger(object): def __init__(self, ip_list, thread_num=2): self._ip_list = ip_list self._thread_num = thr

  • python使用scapy模块实现ping扫描的过程详解

    关于scapy Scapy 是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 换言之, Scapy 是一个强大的操纵报文的交互程序.它可以伪造或者解析多种协议的报文,还具有发送.捕获.匹配请求和响应这些报文以及更多的功能. Scapy 可以轻松地做到像扫描(scanning).路由跟踪(tracerouting).探测(probing).单元测试(unit tests).攻击(attacks)和发现网络(network disco

  • Python多线程扫描端口代码示例

    本文代码实现Python多线程扫描端口,具体实现代码如下. #coding:utf-8 import socket import thread import time socket.setdefaulttimeout(3) def socket_port(ip,port): try: if port>=65535: print(u"端口扫描结束!") s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建套接字 result=s

  • Python+OpenCV实战之实现文档扫描

    目录 1.效果展示 2.项目准备 3.代码的讲解与展示 4.项目资源 5.项目总结与评价 1.效果展示 网络摄像头扫描: 图片扫描: 最终扫描保存的图片: (视频) (图片) 2.项目准备 今天的项目文件只需要两个.py文件,其中一个.py文件是已经写好的函数,你将直接使用它,我不会在此多做讲解,因为我们将会在主要的.py文件import 导入它,如果想了解其中函数是如何写的,请自行学习. utlis.py,需要添加的.py文件 import cv2 import numpy as np # T

  • python 使用raw socket进行TCP SYN扫描实例

    1. TCP SYN扫描 端口扫描常用于用于探测服务器或主机开放端口情况,被计算机管理员用于确认安全策略,同时被攻击者用于识别目标主机上的可运作的网络服务.端口扫描是向一定范围的服务器端口发送对应请求,以此确认可使用的端口.虽然其本身并不是恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段. TCP SYN扫描是端口扫描众多方式中的一种,其他方式包括TCP扫描,UDP扫描,ACK扫描,窗口扫描和FIN扫描等. TCP SYN扫描是另一种TCP扫描.端口扫描工具不使

  • Python利用tkinter和socket实现端口扫描

    目录 题目 参考code 题目 请设计并实现一款主机端口扫描程序.程序根据用户输入的域名或IP地址,可以查询该主机的开放的端口号. 例如: 并有一定的异常处理 参考code import tkinter from tkinter import * import socket import tkinter.messagebox class CheckPort: def __init__(self): window = Tk() window.title("端口扫描") window.ge

  • 详解python多线程、锁、event事件机制的简单使用

    线程和进程 1.线程共享创建它的进程的地址空间,进程有自己的地址空间 2.线程可以访问进程所有的数据,线程可以相互访问 3.线程之间的数据是独立的 4.子进程复制线程的数据 5.子进程启动后是独立的 ,父进程只能杀掉子进程,而不能进行数据交换 6.修改线程中的数据,都是会影响其他的线程,而对于进程的更改,不会影响子进程 threading.Thread Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run

  • python多线程与多进程及其区别详解

    前言 个人一直觉得对学习任何知识而言,概念是相当重要的.掌握了概念和原理,细节可以留给实践去推敲.掌握的关键在于理解,通过具体的实例和实际操作来感性的体会概念和原理可以起到很好的效果.本文通过一些具体的例子简单介绍一下python的多线程和多进程,后续会写一些进程通信和线程通信的一些文章. python多线程 python中提供两个标准库thread和threading用于对线程的支持,python3中已放弃对前者的支持,后者是一种更高层次封装的线程库,接下来均以后者为例. 创建线程 pytho

  • python 多线程重启方法

    python 多线程程序运行中,会出现由于异常而导致某线程停止的情况,为了保证程序的稳定运行,需要自动重启down掉的线程. python Threading类有一个setName()的方法,可以为线程设置名字. threading.enumerate()可以获取当前的线程对象. 自动重启线程的思路如下: 1.使用setName()每个线程设置名字: 2.在初始化运行时使用threading.enumerate()获取当前所有线程对象,保存为初始线程组: 3.隔一段时间使用threading.e

随机推荐