python获取网关ip地址(python实现扫描局域网指定网段ip的方法)
python获取网关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 nmap
可总感觉在用高射炮打蚊子——大材小用
那就自己折腾折腾python吧,于是就在网上抄抄改改。
二、python扫描指定网段ip
1、demo
|
pings.py import sys import os import time import _thread import datetime 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() 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): 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__" : starttime = datetime.datetime.now() print ( "start time %s" % (time.ctime())) net = sys.argv[ 1 ] args = " ".join((" 192.168 . "+net+" . 1 ")) ip_prefix = '.' .join(args.split( '.' )[: - 1 ]) find_ip(ip_prefix) endtime = datetime.datetime.now() print ( "end time %s" % (time.ctime())) print ( "total takes :" ,(endtime - starttime).seconds) |
python3除移thread模块,为了兼容性使用_thread代替,最安全用法是使用threading模块
datetime.datetime.now()获取当前时间
os = platform.system()判断当前系统类型
output = os.popen()调用终端,返回值会保存在output中
每次扫描的时长大约是 76 s。
2、运行
python3 pings.py 1
参数1是指定网段,如果想扫描192.168.5.0~192.168.5.255
则输入:
python3 pings.py 5
3、打包
pyinstaller -f pings.py
打包成单一可执行文件
用上面的命令前提是已安装pyinstaller——-(pip intsall pyinstaller)
运行完会生成一个pings的可执行文件
cp pings /bin
好了,到这一步,任意地方打开终端输入:
pings 1
都可以完成 192.168.1.0~192.168.1.255的扫描
总结
以上所述是小编给大家介绍的python实现扫描局域网指定网段ip的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://blog.csdn.net/qq_30650153/article/details/82289785
- python中迭代器的作用(Python3.5迭代器与生成器用法实例分析)
- python的多线程比多进程效率高(Python中单线程、多线程和多进程的效率对比实验实例)
- python简单代码画图(python+pyqt5实现图片批量缩放工具)
- pythonpandas使用攻略(详解Python中pandas的安装操作说明傻瓜版)
- python动态数组原理(Python实现的旋转数组功能算法示例)
- pythonpil安装包(基于Python的PIL库学习详解)
- python如何抓取公众号文章(python爬取微信公众号文章的方法)
- python第三方库的使用方法和作用(Python第三方库face_recognition在windows上的安装过程)
- python加密和解密(python实现对输入的密文加密)
- python开发网站github(使用 Python 玩转 GitHub 的贡献板推荐)
- python机器人开发(python程序控制NAO机器人行走)
- pythonmatplotlib散点图怎么画(python使用matplotlib画柱状图、散点图)
- python连接到本地的mysql数据库(Python实现连接MySql数据库及增删改查操作详解)
- python微信支付接口(Python提取支付宝和微信支付二维码的示例代码)
- python调用elasticsearch(Python-ElasticSearch搜索查询的讲解)
- python的opencv图片识别(OpenCV-Python 摄像头实时检测人脸代码实例)
- 提醒 2019年起河南驾考要开设科目五 官方回应来了(2019年起河南驾考要开设科目五)
- 省 市书法家协会 送万福进万家 活动走进禹州美丽乡村(省市书法家协会)
- 点赞 禹州苌庄正式撤乡建镇 未来发展不可估量(禹州苌庄正式撤乡建镇)
- 它荣获 中国生态魅力镇 称号 就在咱们禹州,一起来看看(中国生态魅力镇)
- 真牛 禹州将建成中等城市(禹州将建成中等城市)
- 被骂欺师灭祖,与郭德纲公开叫板,何云伟改名何沄伟,开始画画了(与郭德纲公开叫板)
热门推荐
- centosdocker安装教程(centos下docker安装及springboot远程发布docker的方法)
- mysql8.0配置优化参数(MySQL 8.0 新特性之检查约束的实现)
- dedecms如何使用(使用dedecms制作英文站的技巧说明)
- 香港免费虚拟主机(香港虚拟主机租用要怎么选择?)
- vue加element ui弹窗(Vue中ElementUI分页组件Pagination的使用方法)
- 在css中用属性来实现文字环绕图片(css文字环绕图片—遇到的问题及快速解决方法)
- mysqlnull所占空间(详解mysql三值逻辑与NULL)
- vue本地图片切换(vue动态加载本地图片的处理方法)
- laravel接口请求模拟(Laravel 类和接口注入相关的代码)
- css position详解(深究CSS定位position的常用技法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9