Python实现扫描局域网活动ip(扫描在线电脑)
作者:junjie 发布时间:2022-10-02 02:38:52
标签: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
就这样。
0
投稿
猜你喜欢
- argparse是python用于解析命令行参数和选项的标准模块。很多时候,需要用到解析命令行参数的程序,目的是在终端窗口输入训练的参数和选
- 让我们描绘一下本文的情节:假设您要在本地机器上运行一个进程,而部分程序逻辑却在另一处。让我们特别假设这个程序逻辑会不时更新, 而您运行进程时
- 本文实例讲述了Python中super关键字用法。分享给大家供大家参考。具体分析如下:在Python类的方法(method)中,要调用父类的
- 有过一定的 Python 经验的开发者都知道,当引入第三方包时,我们常常会使用 pip install 命令来下载并导入包。那么,如何写一个
- 群里有人提出这么一个需求:每天都会传过来一份 Word 文档,里面有多个 Excel 附件,需要把 Excel 内容读取出来。第一反应是使用
- 在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json
- CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT &
- <html> <body> &nbs
- 服务器响应HTTP的类型ContentType大全,使用方法:<% Response.ContentType =&
- 第一节:WAP的潜能 这些日子,我们常听到WAP技术,一种手机上网的技术。从技术上讲,移动电话不可能和PC来竞争,移动电话的屏幕只能容下很少
- 本节列出了可以运行MySQL的操作系统。我们使用GNU Autoconf,因此将MySQL移植到所有使用Posix线程和C++编译器的现代系
- 本文实例讲述了php 多继承的几种常见实现方法。分享给大家供大家参考,具体如下:class Parent1 { function
- 1、并双击新建工程窗口中ActiveX DLL图标,VB将自动为项目添加一个类模块,并将该项目类型设置为ActiveX DLL。2、在属性窗
- //清空form选择 function clearForm(id){ var formObj = document.getElementBy
- 1. ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM 子句中写在最后的表(基础表 driving ta
- 写完调用天气接口的demo之后,小程序调用天气接口并且渲染在页面,顺便再调用了一下美图的接口API:美图APIurlwxml:<vie
- 如下所示:import osimport shutil#path of imgrpath = 'D:\\BaiduNetdiskDo
- 如何将产生的密码记录并发送给用户?这里使用了cdonts邮件组件来发送邮件,前提服务器得支持cdonts组件。好了,看看具体实现方法吧,不是
- 在大家的日常python程序的编写过程中,都会有自己解决某个问题的解决办法,或者是在程序的调试过程中,用来帮助调试的程序公式。小编通过上万行
- 页面域关系:主页面a.html所属域A:www.aspxhome.com被iframe的页面b.html所属域B:www.cidianwan