当前位置: 首页 > 编程笔记 >

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

宰父冠玉
2023-03-14
本文向大家介绍python实现扫描局域网指定网段ip的方法,包括了python实现扫描局域网指定网段ip的方法的使用技巧和注意事项,需要的朋友参考一下

一、问题由来

工作的局域网中,会接入很多设备,机器人上的网络设备就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实现指定ip端口扫描方式,包括了python实现指定ip端口扫描方式的使用技巧和注意事项,需要的朋友参考一下 在Linux中判断一台主机是否可达,可以使用ping命令,而判断端口是否打开,可以使用telnet命令,但是telnet命令没有超时时间的参数,使用起来不是很方便,那么可以利用Python来完成一个端口扫描的功能 socket实现端口扫描 telnetlib实现端

  • 本文向大家介绍Python扫描IP段查看指定端口是否开放的方法,包括了Python扫描IP段查看指定端口是否开放的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python扫描IP段查看指定端口是否开放的方法。分享给大家供大家参考。具体实现方法如下: ini.py: 运行: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍Python开发网站目录扫描器的实现,包括了Python开发网站目录扫描器的实现的使用技巧和注意事项,需要的朋友参考一下 有人问为什么要去扫描网站目录:懂的人自然懂 这个Python脚本的特点: 1.基本完善 2.界面美观(只是画了个图案) 3.可选参数增加了线程数 4.User Agent细节处理 5.多线程显示进度 扫描目标:Metasploitable Linux 代码:Web

  • 本文向大家介绍Python+pyftpdlib实现局域网文件互传,包括了Python+pyftpdlib实现局域网文件互传的使用技巧和注意事项,需要的朋友参考一下 在同一个局域网的多台电脑,传递文件时可以通过 搭建web服务器,设置目录浏览的方式快速分享。如果上传就比较麻烦了,通过QQ/微信会产生很多文件记录,通过teamviewer太慢,ftp是一个不错的选择。 FTP服务器软件在日常开发中,基

  • 本文向大家介绍python实现扫描ip地址的小程序,包括了python实现扫描ip地址的小程序的使用技巧和注意事项,需要的朋友参考一下 python实现扫描ip地址的小程序,具体代码如下所示: 总结 以上所述是小编给大家介绍的python实现扫描ip地址的小程序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持! 如果你觉得本文对你有帮

  • 该部分 API 将帮助您使用光环上基于 Wi-Fi 的组建局域网,并在局域网内实现广播通信。 省略代码中的halocode 注意:该部分 API 省略了“halocode.”,本篇提及的所有 API 均省略了“halocode.” ,如 led_driver.off( )实际为halocode.led_driver.off()。mBuild 电子模块平台的所有功能均维护在halocode库中,因此