Python实现扫描局域网活动ip(扫描在线电脑)
内网的主机都是自动分配ip地址,有时候需要查看下有那些ip在使用,就写了个简单的脚本。
linux和windows下都可以用,用多线程来ping1-255所有的地址,效率不高,2分钟左右。 先凑合和用吧。
#-*- coding: utf-8 -*- #author: orangleliu date: 2014-11-12 #python2.7.x ip_scaner.py ''''' 不同平台,实现对所在内网端的ip扫描 有时候需要知道所在局域网的有效ip,但是又不想找特定的工具来扫描。 使用方法 python ip_scaner.py 192.168.1.1 (会扫描192.168.1.1-255的ip) ''' import platform import sys import os import time import thread def get_os(): ''''' 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() flag = False for line in list(output): if not line: continue if str(line).upper().find("TTL") >=0: flag = True break if flag: print "ip: %s is ok ***"%ip_str def find_ip(ip_prefix): ''''' 给出当前的127.0.0 ,然后扫描整个段所有地址 ''' for i in range(1,256): ip = '%s.%s'%(ip_prefix,i) thread.start_new_thread(ping_ip, (ip,)) time.sleep(0.3) if __name__ == "__main__": print "start time %s"%time.ctime() commandargs = sys.argv[1:] args = "".join(commandargs) ip_prefix = '.'.join(args.split('.')[:-1]) find_ip(ip_prefix) print "end time %s"%time.ctime()
是应用的时候: python ip_scaner.py 192.168.31.1 就会扫描 1-255所有的ip地址了。
D:\CodeHouse\python\tools>python ip_scaner.py 10.0.1.38 start time Wed Nov 12 18:50:58 2014 ip: 10.0.1.1 is ok *** ip: 10.0.1.2 is ok *** ip: 10.0.1.24 is ok *** ip: 10.0.1.38 is ok *** ip: 10.0.1.39 is ok *** end time Wed Nov 12 18:52:16 2014
就这样。
相关推荐
-
python获取局域网占带宽最大3个ip的方法
本文实例讲述了python获取局域网占带宽最大3个ip的方法.分享给大家供大家参考.具体实现方法如下: import re import urllib url = 'http://admin:netcenter@192.168.0.1/analyze.cgi?page=1&px=3&sf=1' a = urllib.urlopen(url).read() ip = re.findall(r'192\.168\.\d+\.\d+', a, re.M) ip1 = ip[0] ip2 = ip
-
Python访问纯真IP数据库脚本分享
项目中有这样的需求,通过IP地址判断客户端是网通的还是电信的.从同事那拿了个纯文本的IP纯真数据库,用Python写了一个小程序,感觉挺好的.下面给出实现源码: #!/usr/bin/env python # -*- coding: utf-8 -*- from bisect import bisect _LIST1, _LIST2 = [], [] _INIT = False ip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b,
-
python统计日志ip访问数的方法
本文实例讲述了python统计日志ip访问数的方法.分享给大家供大家参考.具体如下: import re f=open("/tmp/a.log","r") arr={} lines = f.readlines() for line in lines: ipaddress=re.compile(r'^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))') match=ipaddres
-
python生成IP段的方法
本文实例讲述了python生成IP段的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/local/bin/python #-*- coding: UTF-8 -*- ############################################################# # python 生成IP段 ############################################################# if __name__ == '__mai
-
Python统计日志中每个IP出现次数的方法
本文实例讲述了Python统计日志中每个IP出现次数的方法.分享给大家供大家参考.具体如下: 这脚本可用于多种日志类型,本人测试MDaemon的all日志文件大小1.23G左右,分析用时2~3分钟 代码很简单,很适合运维人员,有不足的地方请大家指出哦 #-*- coding:utf-8 -*- import re,time def mail_log(file_path): global count log=open(file_path,'r') C=r'\.'.join([r'\d{1,3}']
-
python局域网ip扫描示例分享
复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- from scapy.all import *from time import ctime,sleepimport threadingTIMEOUT = 4conf.verb=0 def pro(cc,handle): dst = "192.168.1." + str(cc) packet = IP(dst=dst, ttl=20)/ICMP() reply = sr1(packet
-
python通过scapy获取局域网所有主机mac地址示例
python通过scapy获取局域网所有主机mac地址 复制代码 代码如下: #!/usr/bin/env python# -*- coding: utf-8 -*-from scapy.all import srp,Ether,ARP,confipscan='192.168.1.1/24'try: ans,unans = srp(Ether(dst="FF:FF:FF:FF:FF:FF")/ARP(pdst=ipscan),timeout=2,verbose=False)exc
-
python获取外网ip地址的方法总结
本文实例总结了python获取外网ip地址的方法.分享给大家供大家参考.具体如下: 一.利用脚本引擎库直接获取 import console; import web.script import inet.http; var jsVm = web.script("JavaScript") jsVm.AddCode( inet.http().get("http://fw.qq.com/ipaddress") ) var ipAddr = jsVm.CodeObject.
-
Python实现扫描局域网活动ip(扫描在线电脑)
内网的主机都是自动分配ip地址,有时候需要查看下有那些ip在使用,就写了个简单的脚本. linux和windows下都可以用,用多线程来ping1-255所有的地址,效率不高,2分钟左右. 先凑合和用吧. #-*- coding: utf-8 -*- #author: orangleliu date: 2014-11-12 #python2.7.x ip_scaner.py ''''' 不同平台,实现对所在内网端的ip扫描 有时候需要知道所在局域网的有效ip,但是又不想找特定的工具来扫描. 使用
-
python实现扫描局域网指定网段ip的方法
一.问题由来 工作的局域网中,会接入很多设备,机器人上的网络设备就2个了,一个巨哥红外,一个海康可见光.机器人还有自身的ip. 有时候机器人挂的多了,设备维修更换中,搞来搞去就不记得ip是什么,用自带的软件的确能扫出来,但是这就要开两个windows环境下的软件,耗时耗力,折腾.正好在linux,那简单,敲命令. nmap -P 192.168.1.0/24 可以扫描出 192.168.1.0~192.168.1.255的全部ip 但是前提是要装过nmap apt-get install nma
-
python基础教程之udp端口扫描
一.概述任务描述:开发一个程序,用于获取局域网中开启snmp服务的主机ip地址列表,并写入相应文件以便其它程序使用.背景知识:SNMP是基于UDP的,而且标准的SNMP服务使用161和162端口.思路:1.获取局域在线主机列表:2.获取各个主机的snmp端口(比如161)开启状况:3.以特定格式写入特定文件.这里只实现前两步. 二.nmap实现1.安装nmapLinux平台(CentOS为例): yum install nmap -y widows平台(下载地址):http://nmap
-
python如何编写类似nmap的扫描工具
本文主要是利用scapy包编写了一个简易扫描工具,支持ARP.ICMP.TCP.UDP发现扫描,支持TCP SYN.UDP端口扫描,如下: usage: python scan.py <-p ping扫描类型> <-s 端口发现类型> [-t target] [--port ports] 简单扫描工具,可以进行存活扫描及端口扫描. 存活扫描包括:ARP扫描.ICMP扫描.TCP扫描.UDP扫描. 端口扫描包括:TCP SYN扫描.TCP ACK扫描.TCP FIN扫描. optio
-
python实现集中式的病毒扫描功能详解
本文实例讲述了python实现集中式的病毒扫描功能.分享给大家供大家参考,具体如下: 一 点睛 本次实践实现了一个集中式的病毒扫描管理,可以针对不同业务环境定制扫描策略,比如扫描对象.描述模式.扫描路径.调度频率等.案例实现的架构图如下,首先业务服务器开启clamd服务(监听3310端口),管理服务器启用多线程对指定的服务集群进行扫描,扫描模式.扫描路径会传递到clamd,最后返回扫描结果给管理服务器端. 本次实战通过ClamdNetworkSocket()方法实现与业务服务器建立扫描socke
-
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使用scapy模块实现ping扫描的过程详解
关于scapy Scapy 是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 换言之, Scapy 是一个强大的操纵报文的交互程序.它可以伪造或者解析多种协议的报文,还具有发送.捕获.匹配请求和响应这些报文以及更多的功能. Scapy 可以轻松地做到像扫描(scanning).路由跟踪(tracerouting).探测(probing).单元测试(unit tests).攻击(attacks)和发现网络(network disco
-
python使用scapy模块实现ARP扫描的过程
前言 上篇文章主要写了利用scapy实现ping扫描,这篇文章主要是利用scapy模块实现内网ARP扫描 实现过程 上篇文章中介绍了通过scapy来伪造包,那么ARP包的伪造过程这里不再详述,说一工具的简单整体流程 1.首先,实现单个IP的ARP包的发送和接收 2.其次,实现多进程同时多个ARP包的发送和接收 整体的实现流程与上个脚本的实现较为相似 单进程ARP包 包的构造: def scapy_arp_one(ip_address, queue=None): Packet = Ether(ds
-
Python爬虫抓取代理IP并检验可用性的实例
经常写爬虫,难免会遇到ip被目标网站屏蔽的情况,银次一个ip肯定不够用,作为节约的程序猿,能不花钱就不花钱,那就自己去找吧,这次就写了下抓取 西刺代理上的ip,但是这个网站也反爬!!! 至于如何应对,我觉得可以通过增加延时试试,可能是我抓取的太频繁了,所以被封IP了. 但是,还是可以去IP巴士试试的,条条大路通罗马嘛,不能吊死在一棵树上. 不废话,上代码. #!/usr/bin/env python # -*- coding:utf8 -*- import urllib2 import time
-
Python使用django框架实现多人在线匿名聊天的小程序
最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗口,代表一个用户): http://zhaozhaoli.vicp.io/chatroom/happy/ 移动端聊天效果图: 网页版聊天效果图: 实现思路: 发送的消息通过ajax先写入数据库,通过ajax的循环请求,将写入数据库的消息显示到前端界面. 前端核心代码: <script> $(fun
随机推荐
- DB2 日期和时间的函数应用说明
- 显示网络配置的批处理文件
- Python实现高效求解素数代码实例
- ASP.net(c#)生成条形码 code39条码生成方法
- asp.net通过js实现Cookie创建以及清除Cookie数组的代码
- JavaScript省市联动实现代码
- IIS6 中"ASP 0201 错误 无效的默认脚本语言" 的解决方法
- C#难点逐个击破(1):ref参数传递
- 光标的一些操作总结
- asp下tag的实现,简单介绍与部分代码
- PHP访问数据库集群的方法小结
- C#实现随鼠标移动窗体实例
- JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
- 原来可以正常使用,现在一自检就提示:未指定的错误
- Android 实现局部图片滑动指引效果
- C# WinForm中实现快捷键自定义设置实例
- 求数组中最长递增子序列的解决方法
- pandas修改DataFrame列名的方法
- vue.js,ajax渲染页面的实例
- 微信小程序canvas实现刮刮乐效果