zoukankan      html  css  js  c++  java
  • Python获取指定网段正在使用的IP

    Python获取指定网段正在使用的IP

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    
    ''''' 
    使用方法样例 python test20.py 192.168.1.1  
    (会扫描192.168.1.1-255的ip) 
    多线程加速后大概十几秒
    '''
    import platform
    import sys
    import os
    import time
    import threading
    
    live_ip = 0
    
    
    def get_os():
        os = platform.system()
        if os == "Windows":
            return "n"
        else:
            return "c"
    
    
    def ping_ip(ip_str):
        cmd = ["ping", "-{op}".format(op=get_os()),
               "1", ip_str]
        output = os.popen(" ".join(cmd)).readlines()
        for line in output:
            if str(line).upper().find("TTL") >= 0:
                print("ip: %s is ok ***" % ip_str)
                global live_ip
                live_ip += 1
                break
    
    
    def find_ip(ip_prefix):
        '''''
        给出当前的127.0.0 ,然后扫描整个段所有地址
        '''
        threads = []
        for i in range(1, 256):
            ip = '%s.%s' % (ip_prefix, i)
            threads.append(threading.Thread(target=ping_ip, args={ip, }))
        for i in threads:
            i.start()
        for i in threads:
            i.join()
    
    
    if __name__ == "__main__":
        print("start time %s" % time.ctime())
        cmd_args = sys.argv[1:]
        args = "".join(cmd_args)
        ip_pre = '.'.join(args.split('.')[:-1])
        find_ip(ip_pre)
        print("end time %s" % time.ctime())
        print('本次扫描共检测到本网络存在%s台设备' % live_ip)

  • 相关阅读:
    MySQL Server类型的MySQL 客户端的下载、安装和使用
    Sqoop学习笔记
    Sqoop安装部署
    Hive学习笔记
    HBase构架原理
    HBase HA分布式集群搭建
    IntelliJ IDEA(Community版本)本地模式的下载、安装及其使用
    Scala本地安装
    CALayer的隐式动画和显式动画
    简易动画两种执行方式
  • 原文地址:https://www.cnblogs.com/111testing/p/14113297.html
Copyright © 2011-2022 走看看