This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3100:从 IP 地址查找 Mac 地址

Guru**** 2537350 points
Other Parts Discussed in Thread: CC3100, TM4C129ENCPDT, CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1049784/cc3100-finding-mac-address-from-ip-address

器件型号:CC3100
主题中讨论的其他器件: TM4C129ENCPDTCC3200

大家好、

我将 TM4C129ENCPDT 与 CC3100搭配使用并使用 TI RTOS。

我的设备已连接到 WiFi 路由器、一切正常。  

有一个设备'abc'连接到与我的设备连接的同一路由器。 从技术上讲、我的设备和"abc"位于同一个网络上。  

假设知道设备的 MAC 地址、如何查找设备的 IP 地址? 反之亦然。

我知道有一种称为 ARP 的协议、但在 cc3100文档中找不到这方面的任何示例。  

请告诉我是否有更好的方法来做到这一点。  

谢谢

AkhiG

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、AkhiG、

    请更好地描述您想要实现的目标。 您的任务是根据某个标识(例如序列号、MAC 地址)在网络上查找 CC3100器件、还是因为您要搜索其他器件而需要使用 MAC 地址?

    • 如果要在网络中发现器件、可以使用 CC3100支持的 mDNS、也可以根据 UDP 广播创建自己的发现协议
    • 如果您想处理 ARP 和 RARP 问题、这里是Michael 的一个小示例。 但请注意、实施可能有点棘手、

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jan、

    感谢您的回复。  

    我的主要任务是、我有一个 abc 器件(非 ti)的 IP 地址、我想知道使用我的 cc3100器件的该器件的 MAC 地址。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我不知道您为什么需要这样的、因为您自己使用 CC3100实施 ARP 协议在应用方面没有意义。 最适合您的资源是 Michael 的示例。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jan、

    它适用于 cc3100。 我还想在以太网中执行同样的操作。 但在以太网中、我们没有 CC3100中的一些宏-

    /*套接字地址系列*/

    上面提供的示例中、  

    fd =套接字(AF_packet、SOCK_RAW、IPPROTO_RAW);

    以太网中没有 AF_PACKET 和 IPPROTO_RAW。 我们有这些-

    定义 AF_UNSPEC    0

    #define AF_TASK     1        //任务间通信*/

    #define AF_iNet     2.        /*互联网:UDP、TCP 等 *

    #define AF_inet6     10.        /* IPv6 */

    #define AF_RAWETH    12.        /*原始以太网协议*/

    /*套接字类型*/

    #define SOCK_STREAM   1.        /*流套接字*/

    #define SOCK_DGRAM    2.        /*数据报套接字*/

    #define SOCK_RAW     3.        /*原始协议接口*/

    #define SOCK_STREAMNC  4.        /*非复制流套接字*/

    #define SOCK_RAWETH   5.        /*非复制原始 eth 套接字*/

    /*协议*/

    #define IPPROTO_IP    0        /* IP 占位符*/

    #define IPPROTO_ICMP   1.        /* ICMP */

    #define IPPROTO_IGMP   2.        /* IGMP */

    #define IPPROTO_TCP   6.        /* TCP */

    #define IPPROTO_UDP   17.        /* UDP */

    #define IPPROTO_IPv6   41        /* IPv6  */

    #define IPPROTO_ICMPv6  58.        /* ICMPv6标头。 *

    我的以太网代码是:

      fd =套接字(AF_RAWETH、SOCK_RAW、IPPROTO_IP);

    但在这种情况下,当我使用 SENT()时,我的设备会被重置,这意味着它无法正常工作。 我也尝试过几次、但都不工作。  

    在以太网中执行相同操作的最佳方法是什么?

    谢谢

    AkhiG

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、AkhiG、

    很抱歉、我不理解您的问题。 sl_AF_packetsl_sock_raw sl_IPPROTO_raw 等宏来自 CC3100 SDK 文件 socket.h 来自上面 CC3200链接的示例代码也适用于 CC3100、因为两个器件都具有相同的网络内核。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jan、您好、抱歉、我没有明确提及我的问题。

    既然我在 CC3100中使用了该 arp、我也希望在以太网项目中执行相同的操作。 在这里、如果我使用相同的东西、它就不起作用了。 我们如何在以太网项目中执行此操作、而不是在 cc3100中执行此操作。  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很抱歉、您需要在论坛的不同部分询问、具体取决于所使用的 MCU 类型。 我不是 TH4C 专家、因此我无法回答您的问题。

    1月