python实现扫描局域网指定网段ip的方法


Posted in Python onApril 16, 2019

一、问题由来

工作的局域网中,会接入很多设备,机器人上的网络设备就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的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python daemon守护进程实现
Aug 27 Python
python数据结构之链表的实例讲解
Jul 25 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python里运用私有属性和方法总结
Jul 08 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
使用Python操作MySQL的小技巧
Sep 10 Python
python math模块的基本使用教程
Jan 16 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
python实现扫描ip地址的小程序
Apr 16 #Python
使用Python制作简单的小程序IP查看器功能
Apr 16 #Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 #Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 #Python
Python字符串内置函数功能与用法总结
Apr 16 #Python
python3实现字符串操作的实例代码
Apr 16 #Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 #Python
You might like
15种PHP Encoder的比较
2007/04/17 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
Python with用法实例
2015/04/14 Python
python实现彩票系统
2020/06/28 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
详解用python生成随机数的几种方法
2019/08/04 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
门卫工作岗位职责
2013/12/17 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
2014年节能工作总结
2014/12/18 职场文书