时间:2021-05-22
一、问题由来
工作的局域网中,会接入很多设备,机器人上的网络设备就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.pyimport sysimport osimport timeimport _threadimport datetimedef 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的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
网段与lan口ip地址冲突的解决方法: 1、通过路由器实现IP“静态绑定”操作。对此首先需要获取局域网中所有电脑的MAC地址,并通过路由器实现静态IP分配,从
使用工具:深度网吧辅助GHOSTforPXE1.51这款软件含有扫描局域网,在地址扫描下框填入自己的网段;扫描次数;延迟;一般给网吧做系统时都要扫描所有机器硬件
VLAN(VirtualLocalAreaNetwork)的中文名为"虚拟局域网"。VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴
今天做了个在局域网的某客户端取得该局域网的公网IP的小程序,方法是通过登陆外网,让外网告诉你所在局域网的公网IP是多少,方法如下:复制代码代码如下:Uriuri
交换式局域网的核心设备是交换机。 交换式局域网,作为一种能通过增加网段提高局域网容量的技术,已经迅速地确立了它自己的地位。这是因为局域网交换机能够以较低的成本