【问题标题】:how can i fetch the names & ip addresses of machines connected in a same network using c?如何使用 c 获取连接在同一网络中的机器的名称和 IP 地址?
【发布时间】:2019-12-11 01:28:57
【问题描述】:

对于我的项目,我必须获取连接在同一网络中的所有设备名称及其 IP 地址。 How to get the names and ips of all devices on my local network? 有点类似于帖子,但我必须使用 c 代码,并且此帖子仅适用于 ios。

我知道 ARP 协议用于将 ip 地址与 mac 地址映射,但不知道如何从那里扫描所有 ip。 我的目标是在没有任何命令行工具的情况下获得输出,因为 nmap 和 arp 命令也在那里,它们会给出网络 IP 地址,但不是以正确的方式。 任何人都可以告诉我如何获得所有这些细节,无论有没有代码,这真的很有帮助。

谢谢,

【问题讨论】:

    标签: c macos macos-high-sierra


    【解决方案1】:

    你可以socket raw c,创建两个线程

    1. 线程 1:使用 ICMP ping 所有机器。

    2. 线程 2:捕获所有传入您接口的数据(例如:eth0),然后仅过滤 ARP 响应。

    【讨论】:

    • 创建和协调线程可能会比简单地在单个线程中执行更多资源。
    • 你需要将一个线程绑定到一个接口,并且使用两个线程比绑定-发送-解除绑定-发送...更好,也可以使用两个单独的程序或机器
    • 我以前没有使用过这些术语,所以这对我来说有点新。正如你们所建议的那样。我已经阅读了使用 icmp 来发送数据包,但是如果你们给我任何代码示例,这将是非常有帮助的。 :) 提前致谢。
    • 感谢@phoenixstudio 的快速响应。我已经详细检查了链接。我在编译第二个代码时遇到的问题,因为使用了一些在 osx 中不存在的 linux 库。
    猜你喜欢
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2012-09-29
    • 1970-01-01
    • 2014-04-15
    相关资源
    最近更新 更多