当前位置:网站首页>嵌入式系统开发笔记79:为什么要获取本机网卡IP地址
嵌入式系统开发笔记79:为什么要获取本机网卡IP地址
2022-07-01 04:01:00 【snmplink】
《嵌入式系统综合实战》系列专栏介绍
《嵌入式系统综合实践》系列专栏将在《嵌入式系统综合开发》专栏的基础上,以实战的形式系统的介绍嵌入式系统开发的知识、技能、技巧以及升华后的设计思想。
作者力求该系列专栏下的每一个小专栏都自成体系,完成一个真正的项目实践,解决一个现实应用中的实际需求。本专栏涉及到的的选题,均源于作者多年的项目实践。
本系列专栏涉及以下知识体系:Ubuntu、Python、STM32、C++、VSCode、CPLD、FPGA、Verilog HDL、 Altium Designer。
本系列专栏所涉及的知识体系的硬件部分均会提供原理图,软件部分将提供源代码,以供读者参考使用。
欢迎大家对本系列专栏提出宝贵意见,我一定虚心接纳,也欢迎大家对本专栏所涉及的内容提出问题,我会在我力所能及的范围内予以解答。
最后,需要和大家说明的是本系列文章提供的原理图和程序源代码大家都可以自由(free)使用,没有任何限制。但专栏所涉及的所有文章均属snmplink原创,请遵循Creative Commons版权协议,未经博主许可,不得转载,不得用于任何商业目的(包括但不限于图书出版等)。
文章目录
前言
本编文章是《获取本机网卡IP地址》专栏的第1篇文章,我将在本篇文章中讲述“为什么要获取本机网卡IP地址”,以及“获取本机网卡IP地址”的基本设计思路,在此基础上给出本专栏的具体知识安排,读者在阅读本专栏后,可以根据个人实际需求进行进一步的系统学习。
一、演示效果
项目完成后,可以达到如下图所示的效果,应用程序启动后,会提示“请选择通信网卡”对话框,用户选择相应的与设备进行通信的网卡,正确选择后,进入应用程序的主界面。
二、所需基础知识
阅读本栏目需掌握的知识如下:
Python
PyQt
对于基础知识的补充,可参考嵌入式系统综合开发专栏
三、为什么要获取本机网卡IP地址
1、如何获得设备IP地址?
选题来源于实际的项目需求,在局域网下,我们如何能够快速获得设备的IP地址。比如说,你是一个设备维护人员到达设备安装的现场,需要使用笔记本或手机对设备进行设置,但是你此时忘记了设备的IP地址,你应该如何操作?
一般情况下,我们可以采取3种方法,获得设备的IP地址:
1、通过USB、串口、485口等方式获得IP地址
这种方式采用不需要设备IP地址就可以和设备进行通信,但是需要额外的接口与接线,使用起来比较麻烦。
2、对设备进行复位操作
这种方式首先对设备进行复位操作,恢复其默认的IP地址,然后应用默认的IP地址,对设备进行设置。这种看似简单,只使用网线即可,但设置后,还需恢复原先设置,除非已对原有设置进行了备份,否则使用起来,也极不方便。
3、设备自动报送IP地址
这种方式是直接使用以太网对设备操作,也不需给设备复位,而让设备将自身的IP地址报送上来,主要用到的是IPV4的广播技术。这种方式最为简单,应用起来也最为广泛。
2、如何获得本机网卡IP地址
如前所述,通过IPV4的广播技术,可以让设备自动报送自身的IP地址,但是我们首要做到的是需要在局域网内广播“上传IP地址”命令,如果本机只有一个网络设备(例如网卡),那么直接项这个设备发送广播命令即可。
但是,很多计算机自身拥有多个网络设备,例如,我的计算机自身就有很多网络设备,如下图所示。所以,如何确认从哪个网络设备向外发送广播命令就是一个亟待解决的问题。
为了解决这个问题,我们就需在程序启动时,搜索到本机的所有网络设备的IP地址,并将其提供给用户,让其进行选择,确认与设备相连的网络设备。
四、本专栏讲解的内容
本专栏将讲解如何使用Python语言搜索到本机的所有网络设备,实际上,搜索本机网络设备的核心代码非常简单,但本专栏会以一个完整的实例方式进行讲解实现该应用的所有技术细节问题,包括以下内容:
1、应用Qt Designer进行主界面设计
(1)文章链接:嵌入式系统开发笔记80:应用Qt Designer进行主界面设计
(2)可获得的设计技能
在VS Code中启动Qt Designer
使用Qt Designer进行主界面设计
运行主界面的基本代码
设置标题栏
设置图标
主界面在屏幕居中显示
2、使用Dialog组件设计提示对话框
(1)文章链接:嵌入式系统开发笔记81:使用Dialog组件设计提示对话框
(2)可获得的设计技能
在Qt Designer中建立Dialog对话框
在Qt Designer中给组件建立信号和槽
在应用程序中引用Dialog对话框
在主窗体中调用并显示Dialog对话框
模态对话框
窗体大小不能改变
3、取得本机所有网络设备的IP地址
4、窗口之间进行通信
边栏推荐
- 高并发下接口幂等性如何保证?
- 【TA-霜狼_may-《百人计划》】1.2.1 向量基础
- PageObject模式解析及案例
- [ta- frost wolf \u may- hundred people plan] 1.1 rendering pipeline
- 318. Maximum word length product
- Volley parsing data shows networking failure
- Redis (VII) optimization suggestions
- [TA frost wolf \u may- hundred people plan] 1.3 secret of texture
- 【历史上的今天】6 月 30 日:冯·诺依曼发表第一份草案;九十年代末的半导体大战;CBS 收购 CNET
- 基于Unet的环路滤波
猜你喜欢

431. 将 N 叉树编码为二叉树 DFS

It's settled! 2022 JD cloud summit of JD global technology Explorer conference see you in Beijing on July 13

[TA frost wolf _may - "hundred people plan"] 1.4 introduction to PC mobile phone graphics API

“目标检测“+“视觉理解“实现对输入图像的理解

【人话版】WEB3黑暗森林中的隐私博弈

不同性能测试工具的并发模式

Millet College wechat scanning code login process record and bug resolution

线程常用方法与守护线程

JMeter学习笔记2-图形界面简单介绍

Deep learning | rnn/lstm of naturallanguageprocessing
随机推荐
采购数智化爆发在即,支出宝'3+2'体系助力企业打造核心竞争优势
LeetCode 1828. Count the number of points in a circle
The problem of integrating Alibaba cloud SMS: non static methods cannot be referenced from the static context
8. string conversion integer (ATOI)
Appium fundamentals of automated testing - basic principles of appium
谷粒学院微信扫码登录过程记录以及bug解决
409. 最长回文串
Deep learning | rnn/lstm of naturallanguageprocessing
What does ft mean in the data book table
208. implement trie (prefix tree)
Qt development experience tips 226-230
JMeter学习笔记2-图形界面简单介绍
168. excel table column name
It's settled! 2022 JD cloud summit of JD global technology Explorer conference see you in Beijing on July 13
【无标题】
陈宇(Aqua)-安全->云安全->多云安全
LetCode 1829. Maximum XOR value per query
241. 为运算表达式设计优先级
Unity之三维空间多点箭头导航
Visit the image URL stored by Alibaba cloud to preview the thumbnail directly on the web page instead of downloading it directly