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基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python进阶_关于命名空间与作用域(详解)
May 29 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
使用Eclipse如何开发python脚本
Apr 11 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
python调用API接口实现登陆短信验证
May 10 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 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
PHP Pear 安装及使用
2009/03/19 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
深入理解Promise.all
2018/08/08 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
python格式化字符串实例总结
2014/09/28 Python
Python实现的RSS阅读器实例
2015/07/25 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
美国牛仔品牌:True Religion
2018/11/16 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
校友会欢迎辞
2014/01/13 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
机关会计岗位职责
2014/04/08 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
社区文艺活动方案
2014/08/19 职场文书
小学教师师德整改措施
2014/09/29 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
结婚典礼致辞
2015/07/28 职场文书
军训后的感想
2015/08/07 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
HTML常用标签超详细整理
2022/03/19 HTML / CSS
python标准库ElementTree处理xml
2022/05/20 Python