这绝对不是重复的。在

我正在做一个应用程序,我需要找到我的设备的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...相关推荐

  1. python经纬度获取县名_利用 Python 批量获取县镇运输距离

    起因 最近做规划项目,领导让查出某几个市的所有乡镇级行政区域,距离所在县级行政中心的交通运输距离.想着也不是啥难事儿,高德地图一搜就有. 当我把各市行政区划统计完,发现一共有五百多个乡镇,意味着要在地 ...

  2. python arp协议分析_通过python对本局域网进行ARP扫描获取MAC

    #!/usr/local/bin/python3 """ 对本局域网进行ARP扫描 ARP (Address Resolution Protocol,ARP); 以太网M ...

  3. python实现局域网攻击软件_使用python的scapy库进行局域网内的断网攻击(基于ARP协议)...

    (使用python scapy库进行网络攻击) ARP协议 ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行. ARP攻击的局限性: ARP攻击仅能在以太网( ...

  4. python库名_在python存储库名称和包名称中使用连字符/破折号 - python

    我试图使我的git仓库pip可安装.为此,我正在重组仓库以遵循正确的约定.通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称相同的软件包中.例如.如果我的存储库称为myrepo,则源代 ...

  5. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  6. 如何用python批量下载数据_使用Python批量下载数据

    这次依旧是,不过下载的是Australian Bureau of Statistics的数据,都是xls的表格,网址为:http://www.abs.gov.au.网页打开左边有棵树目录,里面记录的澳 ...

  7. python封装什么意思_封装 · Python · 看云

    #### 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式. #### 好处: 1\. 将变化隔离: 2\. 便于使用: 3\. 提高复用性: 4\. 提高安全性: #### 封装原则: 1,将 ...

  8. python模型预测足球_采用 Python 机器学习预测足球比赛结果!买谁赢就谁赢!

    采用 Python 机器学习预测足球比赛结果 足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻.比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题.甚 ...

  9. python怎么避免浅拷贝_详谈Python中的深拷贝和浅拷贝

    在平时工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝. ...

最新文章

  1. 有界阻塞队列ArrayBlockingQueue和无界阻塞队列LinkedBlockingQueue
  2. java modelmapper_java - 使用ModelMapper映射抽象类型的字段 - SO中文参考 - www.soinside.com...
  3. ajax bootstrap 进度条,Bootstrap进度条与AJAX后端数据传递结合使用实例详解
  4. Office365 Exchange Hybrid No.15 DNS切换及邮件传输排错
  5. 开发日记-20190915 关键词 汇编语言王爽版 第十章
  6. Python与Golang协程异同
  7. centos基础命令 第二节
  8. 菜鸟必须了解的4种后门技术知识!
  9. 一个高性能RPC框架的连接管理
  10. Hadoop入门进阶步步高(五)-搭建Hadoop集群
  11. 台达b2伺服modbus通讯_台达伺服ASDA-B2使用手册-简体最新.pdf
  12. MapGuide open source开发系列教程四: 体系结构(转贴)
  13. 《JAVA继承与多态》【Person、Student、Employee类】(注:此题在书上原题基础上有修改)设计一个名为Person的类和它的两个名为Student和Employee子类。
  14. CTF之Bugku网站被黑
  15. Laravel5.2之Seeder填充数据小技巧
  16. Cisco(GNS3) - 路由器接口类型
  17. python + 数学公式 + 图像 表白 LOVE YOU❤
  18. 将.m3u8转换为视频文件保存到本地
  19. 【Flutter】【path_provider】path_provider文件系统
  20. 【Java】棋盘覆盖问题

热门文章

  1. Operating System-Thread(5)弹出式线程使单线程代码多线程化会产生那些有关问题
  2. SELinux深入理解
  3. android 悬浮窗口和主界面同时显示,Android 悬浮窗口(及解决6.0以上无法显示问题)...
  4. oracle数据库读取工具,用Oracle导入导出工具实现Oracle数据库移植
  5. SAS的数组array介绍
  6. linux gpt引导分区,linux 引导gpt分区windows及clover
  7. 自动驾驶中激光雷达如何检测障碍物?
  8. python简单实用案例_Ajax的简单实用实例代码
  9. 前端全栈大佬是如何使用javaScript实现一个无缝轮播优化
  10. mysql 删除版本信息_linux 删除mysql