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抓取网页正文的源码
Jun 11 Python
pygame学习笔记(5):游戏精灵
Apr 15 Python
Python中利用sqrt()方法进行平方根计算的教程
May 15 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
Python语言进阶知识点总结
May 28 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python中logging日志库实例详解
Feb 19 Python
Python线程threading模块用法详解
Feb 26 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
浅谈Python里面None True False之间的区别
Jul 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
Prototype框架详解
2015/11/25 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
js实现转动骰子模型
2019/10/24 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
构造方法和其他方法的区别
2016/04/26 面试题
servlet面试题
2012/08/20 面试题
动员大会主持词
2014/03/20 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书