• python 脚本之 IP地址探测


    #第一种方法
    #!/usr/bin/env python #_*_ coding:utf8 _*_ #### 该脚本需要使用fping命令 如果没有安装需要提前安装fping #### yum install fping import os ip = "10.10.0.1/24" ips = ["10.10.0.1/24", "192.16.17.27/24"] # 需要查询的IP的地址段状态的输入列表 iplist = 'iplist' # 存储IP的文件名 path = os.path.dirname(os.path.abspath(__file__)) #得到当前文件夹路径 sh_path = os.path.join(path, iplist) #组合文件名和路径 iplists = [] #存储IP的临时文件的列表 ip_dic = {} #存储ip和ip状态的字典 例如:'10.101.0.185': 'unreachable' '10.101.0.50': 'alive' #执行fping命令来获取,一个段的所有IP的分配情况 for i in range(len(ips)): list_name = sh_path + str(i) #得到当前存储IP的文件名 os.system('> %s;fping -g %s >> %s' % (list_name, ips[i], list_name)) iplists.append(list_name) with open(list_name) as f: for data in f.readlines(): temp = data.strip(' ') ip_dic[temp.split(" ")[0]] = temp.split(" ")[2]
    #第二种方法
    #!/usr/bin/env python2.7
    # -*- coding: utf-8 -*-
       
     
    from scapy.all import srp, Ether, ARP, conf   #要提前安装 pip install scapy包
    lan = '10.10.10.0/24'   #给出想要查询的IP地址段
    ans, unans = srp(Ether(dst="FF:FF:FF:FF:FF:FF")/ARP(pdst=lan), timeout=2)
    for snd, rcv in ans:  #打印出MAC和IP
        cur_mac = rcv.sprintf("%Ether.src%")
        cur_ip  = rcv.sprintf("%ARP.psrc%")
        print cur_mac + ' - ' +cur_ip

      

  • 相关阅读:
    codeforces 447C. DZY Loves Sequences 解题报告(446A)
    ajax 请求多张图片数据
    window 常用软件
    linux 脚本命令匹配并获取下一行数据
    linux C之getchar()非阻塞方式
    php curl 库使用
    vue.js 简单入门
    巧用jQuery选择器写表单办法总结(提高效率)
    linux 中断理解
    linux 驱动 工作队列
  • 原文地址:https://www.cnblogs.com/kuku0223/p/9043465.html
Copyright © 2020-2023  润新知