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调用java的Webservice示例
Mar 10 Python
Python yield 小结和实例
Apr 25 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
python开发之list操作实例分析
Feb 22 Python
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
Python3计算三角形的面积代码
Dec 18 Python
python实现百度语音识别api
Apr 10 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
python发送告警邮件脚本
Sep 17 Python
Python 共享变量加锁、释放详解
Aug 28 Python
Python-openCV读RGB通道图实例
Jan 17 Python
python 判断文件或文件夹是否存在
Mar 18 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+MySQL的聊天室设计
2006/10/09 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
php中this关键字用法分析
2016/12/07 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
js验证上传图片的方法
2015/05/12 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
python中nan与inf转为特定数字方法示例
2017/05/11 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
应届毕业生通用的自荐书范文
2014/02/07 职场文书
关于运动会的广播稿
2014/09/22 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
感谢信格式范文
2015/01/22 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
MySQL数据库查询之多表查询总结
2022/08/05 MySQL