- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如何获取局域网中所有的IP地址和关联的主机名?
最佳答案
要获取接口(interface)和 IP 地址列表,请使用 getifaddrs()
。
使用 ifa_addr->sa_family == AF_INET
搜索接口(interface)
IP 地址在 sin_addr.s_addr
中。
然后您可以使用 gethostbyaddr()
查找该 IP 地址的 DNS 名称。
更新:
有人向我指出,OP 可能询问的是发现其他主机,而不是本地计算机上的接口(interface)地址。
没有可靠的方法来发现局域网中的其他机器,但有一些技巧。
Ping 方法:使用 ping 实用程序(或等效程序)ping 本地广播地址,然后查看响应者。可以通过如上所示列出接口(interface)来找到广播地址。我相信 ICMP 在 OSX 下不需要 root 权限。请注意,许多系统可能禁用了 ICMP ping 或设置了防火墙,因此您只会收到来自非隐身系统的响应。
ARP 方法:检查系统 ARP 缓存以查看哪些 IP 地址最近处于事件状态。这只会显示最近几分钟在同一网段上有广播数据包的系统。
这两种方法都可能被防火墙、路由器甚至交换机阻止,因此“LAN”的确切边界可能非常狭窄。这两种方法都可以通过编程方式实现,但调用命令行 ping
或 arp
命令可能更简单、更便携。
关于c++ - LAN 网络上所有主机的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023222/
我必须根据该 LAN 上的 ip 地址解析 LAN 中设备的主机名。我有一些代码适用于外部 IP 地址,但不适用于内部连接的设备。 下面我附上了代码。 如果您有任何想法从 iOS/OSX 中的 IP
我想在 ubuntu 机器上安装 Git 作为 git_server 并且局域网中的用户是 windows 机器(使用 eclipse 进行开发)我该如何配置我的局域网? 最佳答案 设置局域网 最简单
在 C# 中,我想在运行时获取笔记本电脑的有线 LAN 连接列表,但我不需要任何 wifi 或无线 LAN。 我使用了多种方法来获取网络列表:- 管理类: ManagementClass objMC
我正在使用主板(MSI Gaming主板)和两个支持NIC卡的e1000e驱动程序构建自定义操作系统。我想使用NIC卡中的端口而不是板载端口。 为了禁用板载端口,我尝试使用 70-persistanc
我想通过 LAN 广播字符串,但是当我将客户端代码中的服务器 IP 更改为 255.255.255.255 时,它不会广播。我应该怎么做才能通过 LAN 广播字符串?我应该在客户端代码中做什么,以便不
我正在设置一个 Apache Ignite 集群,当超过两个节点通过 LAN 交换机连接时,很难保持拓扑事件。日志中报告了许多警告和问题,但我想知道开始尝试隔离问题的正确步骤是什么?两个方向的 Pin
直到最近,我还设置了一堆虚拟站点,如下所示: ... 这适用于在我使用 Linux 桌面的本地机器上进行测试。为了测试 MS 和资源管理器如何从我的 Windows 笔记本电脑显示我的页面,
使用多播组发送消息而不是将它们广播到特定端口有什么好处吗?我知道在广播时,其他不想要消息的计算机也会收到它们,但是它对性能/流量有多大影响?不关心的计算机不是立即转储消息吗? 作为一个附带问题,局域网
我一直试图将LAN上的计算机从关机状态唤醒。发送WOL请求的计算机是Windows 10计算机,而我尝试唤醒的计算机是Windows 10计算机。 我尝试了一些在Internet上找到的脚本,大多数脚
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我有一个服务器(在我的笔记本电脑上运行的 java 应用程序)和一个客户端(在我的 android 智能手机上运行的 java 应用程序)。我正在尝试从我的客户端自动查找服务器的 IP 地址。 现在我
如何获取局域网中所有的IP地址和关联的主机名? 最佳答案 要获取接口(interface)和 IP 地址列表,请使用 getifaddrs()。 使用 ifa_addr->sa_family == A
我想检查 Linux 系统上是否插入了 LAN 电缆,/sys 或/proc 中是否有任何我可以检查的文件(我想在 C 中进行)? 最佳答案 要检查电缆是否已插入,您可以查看/sys/class/ne
在多次尝试失败后,我在这里问。每个人都不是编程问题,但我认为与社区相关。 我一直在尝试通过局域网上的手机访问我的 docker-compose 开发网站,就像这样 https://lan_server
我试图让通用链接在我的应用程序中作为 URL 方案的替代品工作,因为从 iOS 9 开始,系统看起来每次从 Safari 调用应用程序时都会显示一个警告对话框。我希望在使用通用链接时替换关联域中注册
有没有办法以编程方式进入 BIOS 并为支持 LAN 唤醒功能的机器打开该功能? 理想情况下,解决方案应该是跨 BIOS,但使用单独的解决方案来打击每个主要供应商也是可以的。 最佳答案 BIOS 配置
我想制作一个小型应用程序,从连接到串行端口的设备收集数据,并将其通过 LAN 传递到另一个应用程序,后者将其存储在数据库中。 我已经在一台 PC 上的一个应用程序中完成了此操作,因此实际上会将应用程序
我正在尝试总体上熟悉 SIEM 系统,并决定通过 Digital Ocean 建立一个 Elastic Stack。一切都很成功,我作为 localhost 的服务器正在生成日志。修补可视化和那些好东
几个月前我在博客上发现了这个 PowerShell 代码。它在不使用外部程序的情况下将 LAN 唤醒信号发送到您选择的 MAC 地址。我在博文上发表评论,并要求作者描述脚本背后的逻辑,因为我对此感到好
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我是一名优秀的程序员,十分优秀!