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模拟鼠标拖动操作的方法
Mar 11 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
Python简单读取json文件功能示例
Nov 30 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
python抽取指定url页面的title方法
May 11 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python Django Cookie 简单用法解析
Aug 13 Python
python删除某个目录文件夹的方法
May 26 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
python+opencv实现车道线检测
Feb 19 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创建Cookie数组的详解
2013/07/03 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
[38:21]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS LGD-CDEC
2014/05/22 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
python3中的md5加密实例
2018/05/29 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
python爬虫之自制英汉字典
2019/06/24 Python
在vscode中配置python环境过程解析
2019/09/28 Python
Python数据正态性检验实现过程
2020/04/18 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
python中random模块详解
2021/03/01 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
大学生怎样写好自荐信
2014/02/25 职场文书
土木工程求职信
2014/05/29 职场文书
2014年度考核工作总结
2014/12/24 职场文书