背景

当前需要通过电脑对多个开发板进行配置。因为目前开发板数量较少,设置同一网段(如192.168.0)进行轮询Ping即可发现设备IP。由于考虑到设备预设IP地址的多变,能否通过代码直接获取IP地址信息。

需求

例如存在设备1:192.168.0.1。设备2:112.18.1.1.设备3:17.25.30.3。

与电脑通过网线直连时能够在电脑上直接看到设备IP。

(最好可以通过代码实现。)

上传的附件
你的回答被采纳后将获得: 10点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 数据结构应该怎么学 如何使这份C语言压缩文件成功运行 : 下一篇keyboard_arrow_right

7个回答

Kanagawa
2019-02-20 18:57:56

bd

TFBOYSer
2019-02-20 19:11:35

可以参考我写的这篇分享 “使用WNetEnumResource函数实现枚举工作组内的主机及其IP”
https://www.write-bug.com/article/1808.html

Blackbox
2019-02-20 21:02:23

你的问题相当于是问“如何获取同一局域网内计算机的IP”~

这样的话,方法有很多,例如你自己的暴力ping ip的方法也可以,还可以发送arp包或者像楼上获取局域网内同一工作组的IP方法也是可以的

Tattoo
2019-02-23 09:54:00

厉害(。^▽^)

Rhyton
2020-08-30 15:39:25

1.设置电脑的SSDP服务,打开控制面板→管理工具→服务,将SSDP discovery service服务打开;

2.将需要查询IP的设备使用有线直连PC,在PC端打开wireshark工具,启动抓包工具;

3.将设备启动,启动过程中会有SSDP报文产生;源地址即为设备IP地址;

这样获取的好处是不需要PC与设备在相同网段,直接获取IP地址;

dlyfive
2020-09-12 08:45:29

111

梦竹
2020-11-01 10:25:59

厉害啊大佬

精彩评论

  • python的web框架
    百度一下
    2020-10-19 15:52:27 thumb_up( 2 )
  • 自学Python语言,是看书好还是看视频好呢?
    sp
    2020-11-22 14:46:05 thumb_up( 1 )
  • "WRITE-BUG技术共享平台"哪个版块你最喜欢
    课内资源吧
    2020-11-19 21:34:37 thumb_up( 1 )
  • 请教大家如何有效地自学课外知识呢?
    多多学习,多多交流。
    2020-11-17 19:27:44 thumb_up( 1 )
  • 你上传资源到"WRITE-BUG技术共享平台"了吗
    传啦O(∩_∩)O
    2019-02-10 16:10:25 thumb_up( 4 )
  • "WRITE-BUG技术共享平台"哪个版块你最喜欢
    最喜欢课内资源板块,因为我可以在里面找到与我学习相关的项目,这样我可以根据项目还学习总体思路
    2020-11-19 14:43:20 thumb_up( 1 )
  • 请教大家如何有效地自学课外知识呢?
    多学多看多操作
    2020-11-27 17:00:58 thumb_up( 1 )
  • 你上传资源到"WRITE-BUG技术共享平台"了吗
    我传了好多,也获得了好多积分!!!之前内测的时候我没有购买永久VIP,现在想要永久VIP却没有了。。。
    2019-02-09 17:23:00 thumb_up( 7 )
  • "WRITE-BUG技术共享平台"哪个版块你最喜欢
    课内资源模块,可以学到好多
    2020-11-18 19:51:59 thumb_up( 1 )
  • [算法问题] 谁逃课了
    哈哈,一开始还以为是吐槽帖,没想是问问题啊。。。顺便解答下你的问题吧。 bA, bB, bC, bD, bE 来表示A、B、C、D、E,true表示逃课,false表示不逃课,原理比较简单,就是暴力枚举 bA, bB, bC, bD, bE,然后判断是否满足给出的 5 个条件,代码如下所示: bool judge(bool bA, bool bB, bool bC, bool bD, bool bE){ bool bRet = false; do { // (1)如果A逃课,B也一定逃课 if (true == bA) { if (true == bB) { // 条件(1)成立 } else { // 条件(1)不成立 break; } } // (2)B和C中有且只有一个人参与逃课 if (true == (bB || bC) && false == (bB && bC)) { // 条件(2)成立 } else { // 条件(2)不成立 break; } // (3)C和D要么都逃,要么都不逃 if (true == bC) { if (true == bD) { // 条件(3)成立 } else { // 条件(3)不成立 break; } } else { if (false == bD) { // 条件(3)成立 } else { // 条件(3)不成立 break; } } // (4)D和E至少有一个人逃了 if (true == (bD || bE)) { // 条件(4)成立 } else { // 条件(4)不成立 break; } // (5)如果E逃课,则A和D一定参与逃课 if (true == bE) { if ((true == bA) && (true == bD)) { // 条件(5)成立 } else { // 条件(5)不成立 break; } } // 所有条件都满足 bRet = true; } while (false); return bRet;}int _tmain(int argc, _TCHAR* argv[]){ int a = 0, b = 0, c = 0, d = 0, e = 0; bool bA = false, bB = false, bC = false, bD = false, bE = false; for (a = 0; a < 2; a++) { for (b = 0; b < 2; b++) { for (c = 0; c < 2; c++) { for (d = 0; d < 2; d++) { for (e = 0; e < 2; e++) { bA = (bool)a; bB = (bool)b; bC = (bool)c; bD = (bool)d; bE = (bool)e; // 判断 if (true == judge(bA, bB, bC, bD, bE)) { if (true == bA) { printf("A"); } if (true == bB) { printf("B"); } if (true == bC) { printf("C"); } if (true == bD) { printf("D"); } if (true == bE) { printf("E"); } printf("\n"); } } } } } } return 0;} 运行程序,结果显示:CD,则表示C和D逃课满足上述5个条件~~~
    2020-07-12 12:15:34 thumb_up( 5 )
eject