python 局域网 主机名_使用python获取连接到本地网络(基于主机名)的所有设备的ip...
这绝对不是重复的。在
我正在做一个应用程序,我需要找到我的设备的IP地址。我知道他们的名字,通过他们的名字我需要得到他们的知识产权。Linux应该很简单,但我需要跨平台的态度,因此我使用python。在
我已经知道解决方案:import socket
socket.gethostbyname('pc_name')
如果我知道答案,为什么我要问?给我一点时间,因为我得不到稳定的结果。在
情况:
我需要找到几个具有相同主机名的覆盆子pi的IP地址,比如:
^{pr2}$
所以根据socket文档(如果我没看错的话)socket.gethostbyname('MyPi')
但是,只返回一个IPsocket.gethostbyname_ex('MyPi')
应返回特定主机名的所有IP。在
我在家里模拟的情况和结果都很不满意。
我把我的raspberry pi称为Android手机:“Galaxy-J5-2016”。为了确保我试着按地址找到他们:>>> socket.gethostbyaddr('10.0.0.33')
('Galaxy-J5-2016', [], ['10.0.0.33'])
>>> socket.gethostbyaddr('10.0.0.34')
('Galaxy-J5-2016', [], ['10.0.0.34'])
很好,他们存在。当我在写这篇文章之前测试它的时候,我甚至发现了一个结果socket.gethostbyname('Galaxy-J5-2016')
但现在即使我试过也找不到任何东西socket.gethostbyname_ex('Galaxy-J5-2016')
以上两个命令都只是等待而没有响应,然后响应如下:Traceback (most recent call last):
File "", line 1, in
socket.gaierror: [Errno 11001] getaddrinfo failed
另一个现象发生了:当我在我的工作笔记本电脑上尝试最后提到的命令时(即使我的工作PC不与任何其他计算机共享主机名)>>> socket.gethostbyname_ex('WORK_PC.DOM1.DOM2')
('WORK_PC.DOM1.DOM2', [], ['172.xx.xx.1', '10.0.xx.1', '172.xx.xx.241',
'192.xx.xx.1', '192.xx.xx.1', **'10.0.0.41'**])
有趣的是10.0.0.41是我的工作电脑现在在家里的本地ip地址(其余的似乎是我工作时的网络)。在
换言之:我有两台主机名相同的机器,我的IP地址为零或只有一个,而我的工作电脑只有一台机器,我得到同一台机器的多个IP,可以说这些IP甚至不是来自实际的本地网络)
PS(万一你会建议我‘arp-a’):通用命令‘arp-a’是无用的,因为它显示最近与命令机联系的所有本地IP。所以我需要ping特定的设备来查看arp-a命令中列出的设备。
PS2:我也不希望任何解决方案需要通过所有IP。这个解决方案非常慢,因为ping不存在的IP会导致几秒钟的超时。255 IP+超时不好。
老实说,如果有python命令可以立即列出所有连接到本地网络的设备,那就足够了。。。但我没有找到这样的东西。
我做错什么了吗?你能给我指路吗?在
提前谢谢
python 局域网 主机名_使用python获取连接到本地网络(基于主机名)的所有设备的ip...相关推荐
- python经纬度获取县名_利用 Python 批量获取县镇运输距离
起因 最近做规划项目,领导让查出某几个市的所有乡镇级行政区域,距离所在县级行政中心的交通运输距离.想着也不是啥难事儿,高德地图一搜就有. 当我把各市行政区划统计完,发现一共有五百多个乡镇,意味着要在地 ...
- python arp协议分析_通过python对本局域网进行ARP扫描获取MAC
#!/usr/local/bin/python3 """ 对本局域网进行ARP扫描 ARP (Address Resolution Protocol,ARP); 以太网M ...
- python实现局域网攻击软件_使用python的scapy库进行局域网内的断网攻击(基于ARP协议)...
(使用python scapy库进行网络攻击) ARP协议 ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行. ARP攻击的局限性: ARP攻击仅能在以太网( ...
- python库名_在python存储库名称和包名称中使用连字符/破折号 - python
我试图使我的git仓库pip可安装.为此,我正在重组仓库以遵循正确的约定.通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称相同的软件包中.例如.如果我的存储库称为myrepo,则源代 ...
- python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议
<Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: <Python之禅>中对于Pyt ...
- 如何用python批量下载数据_使用Python批量下载数据
这次依旧是,不过下载的是Australian Bureau of Statistics的数据,都是xls的表格,网址为:http://www.abs.gov.au.网页打开左边有棵树目录,里面记录的澳 ...
- python封装什么意思_封装 · Python · 看云
#### 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式. #### 好处: 1\. 将变化隔离: 2\. 便于使用: 3\. 提高复用性: 4\. 提高安全性: #### 封装原则: 1,将 ...
- python模型预测足球_采用 Python 机器学习预测足球比赛结果!买谁赢就谁赢!
采用 Python 机器学习预测足球比赛结果 足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻.比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题.甚 ...
- python怎么避免浅拷贝_详谈Python中的深拷贝和浅拷贝
在平时工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝. ...
最新文章
- 有界阻塞队列ArrayBlockingQueue和无界阻塞队列LinkedBlockingQueue
- java modelmapper_java - 使用ModelMapper映射抽象类型的字段 - SO中文参考 - www.soinside.com...
- ajax bootstrap 进度条,Bootstrap进度条与AJAX后端数据传递结合使用实例详解
- Office365 Exchange Hybrid No.15 DNS切换及邮件传输排错
- 开发日记-20190915 关键词 汇编语言王爽版 第十章
- Python与Golang协程异同
- centos基础命令 第二节
- 菜鸟必须了解的4种后门技术知识!
- 一个高性能RPC框架的连接管理
- Hadoop入门进阶步步高(五)-搭建Hadoop集群
- 台达b2伺服modbus通讯_台达伺服ASDA-B2使用手册-简体最新.pdf
- MapGuide open source开发系列教程四: 体系结构(转贴)
- 《JAVA继承与多态》【Person、Student、Employee类】(注:此题在书上原题基础上有修改)设计一个名为Person的类和它的两个名为Student和Employee子类。
- CTF之Bugku网站被黑
- Laravel5.2之Seeder填充数据小技巧
- Cisco(GNS3) - 路由器接口类型
- python + 数学公式 + 图像 表白 LOVE YOU❤
- 将.m3u8转换为视频文件保存到本地
- 【Flutter】【path_provider】path_provider文件系统
- 【Java】棋盘覆盖问题
热门文章
- Operating System-Thread(5)弹出式线程使单线程代码多线程化会产生那些有关问题
- SELinux深入理解
- android 悬浮窗口和主界面同时显示,Android 悬浮窗口(及解决6.0以上无法显示问题)...
- oracle数据库读取工具,用Oracle导入导出工具实现Oracle数据库移植
- SAS的数组array介绍
- linux gpt引导分区,linux 引导gpt分区windows及clover
- 自动驾驶中激光雷达如何检测障碍物?
- python简单实用案例_Ajax的简单实用实例代码
- 前端全栈大佬是如何使用javaScript实现一个无缝轮播优化
- mysql 删除版本信息_linux 删除mysql