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
- java怎么调用支付宝的扫码支付(python实现银联支付和支付宝支付接入)
- java入坑rabbitmq(Python操作rabbitMQ的示例代码)
- python scrapy爬虫教程视频(详解python3 + Scrapy爬虫学习之创建项目)
- python怎么安装queue(python队列Queue的详解)
- python怎么在csv修改数据(python 编写输出到csv的操作)
- python爬虫经典步骤(详解python爬虫系列之初识爬虫)
- python学生管理系统与数据库(python学生管理系统学习笔记)
- python线程安全队列(Python 限制线程的最大数量的方法Semaphore)
- python numpy 安装(python3.6下Numpy库下载与安装图文教程)
- python列表中的数组(Python3.4学习笔记之列表、数组操作示例)
- linux查python进程(linux查找当前python解释器的位置方法)
- python opencv 标记目标(使用Python的OpenCV模块识别滑动验证码的缺口推荐)
- 使用python编辑个人名片(python实现名片管理系统项目)
- python中创建类的方法(Python中如何导入类示例详解)
- python 链表操作(Python3实现的判断环形链表算法示例)
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
- 你好,新成理人丨成都理工大学2019级新生开学典礼隆重举行(新成理人丨成都理工大学2019级新生开学典礼隆重举行)
- 这部民警编演的红色话剧,讲述了一个不断追寻的故事(这部民警编演的红色话剧)
热门推荐
- vscode快速生成html框架(VSCode 自定义html5模板的实现)
- css 最高层级(浅谈CSS 权值 层叠 重要性!important)
- php全栈之路教程(PHP进阶学习之依赖注入与Ioc容器详解)
- sqlserver备份还原地址(SqlServer高版本数据备份还原到低版本)
- 宝塔面板终端密码错误(Bt宝塔面板忘记用户名密码的具体情况分析和解决应对)
- C#中yield
- centos8配置python开发环境(CentOS6.9 Python环境配置python2.7、pip、virtualenv)
- ASP.NET文件打包压缩下载
- docker和jenkins部署的区别(docker搭建jenkins服务的示例)
- C#中BeginInvoke与EndInvoke
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9