嵌入式linux编程,关于ip和dns手动和自动设置的问题(dhcp)
时间:2011-09-19
来源:互联网
现在要在机顶盒产品里写个ip配置的界面,这样在测试时就不需要每次接串口更改ip,直接在界面上修改。
现在我是模仿windows下的网络连接里的ipv4设置界面,能分别手动和自动设置ip和dns。
手动设置ip比较容易,通过ioctl传入不同的标识符进行相应的设置。要自动获取ip,就要用到dhcp,这个我也没能力去开发一个dhcp服务器和客户端,就直接用系统自带,还好busybox自带了udhcpc这个程序,我可以通过system调用这个命令。如今有几个问题有疑问,望各位提出自己的见解:
1、因为是第一次开发,思路就只能局限于以上的方法,不知道有没有更好的或更通用的方法呢?
2、因为需要ip和dns地址能独立设置成手动和自动,如今自动获取dns地址我只能通过dhcp来获取,当ip是手动设置,dns是自动获取的情况下,我只能先调用udhcpc自动获取了ip和dns,再手动去设置ip地址、这样会使得重复设置ip,显得有点多余。但还没能找到如何只获取dns不分配ip的办法,倒是找到了可以获取ip不获取dns(udhcpc 带上 -o 选项)
3、因为我的网络是连到路由器,路由器开启了dhcp功能,所以不用配置dhcp就能获取ip和dns结果。但是只有在自动获取ip和自动获取dns的情况下,才能拼通域名地址(如“www.baidu.com”);如果再手动更改ip,就无法拼通,返回bad address的提示。至于为什么大概也了解,要么dhcp服务器没分配过这个地址或分配给其它机子,拒绝响应。那么,我的问题是怎样做才能真正让ip和dns获取相互独立呢??这个跟dhcp服务器配置有关吗?
现在我是模仿windows下的网络连接里的ipv4设置界面,能分别手动和自动设置ip和dns。
手动设置ip比较容易,通过ioctl传入不同的标识符进行相应的设置。要自动获取ip,就要用到dhcp,这个我也没能力去开发一个dhcp服务器和客户端,就直接用系统自带,还好busybox自带了udhcpc这个程序,我可以通过system调用这个命令。如今有几个问题有疑问,望各位提出自己的见解:
1、因为是第一次开发,思路就只能局限于以上的方法,不知道有没有更好的或更通用的方法呢?
2、因为需要ip和dns地址能独立设置成手动和自动,如今自动获取dns地址我只能通过dhcp来获取,当ip是手动设置,dns是自动获取的情况下,我只能先调用udhcpc自动获取了ip和dns,再手动去设置ip地址、这样会使得重复设置ip,显得有点多余。但还没能找到如何只获取dns不分配ip的办法,倒是找到了可以获取ip不获取dns(udhcpc 带上 -o 选项)
3、因为我的网络是连到路由器,路由器开启了dhcp功能,所以不用配置dhcp就能获取ip和dns结果。但是只有在自动获取ip和自动获取dns的情况下,才能拼通域名地址(如“www.baidu.com”);如果再手动更改ip,就无法拼通,返回bad address的提示。至于为什么大概也了解,要么dhcp服务器没分配过这个地址或分配给其它机子,拒绝响应。那么,我的问题是怎样做才能真正让ip和dns获取相互独立呢??这个跟dhcp服务器配置有关吗?
作者: victor0423 发布时间: 2011-09-19
另外,为了记住上次的选择状态,我创建了个配置文件,就是一个键名对应一个字符串值或地址,程序每次启动都会读取。我读写的方法都是通过system调用shell命令(如echo,awk)实现键值对创建,更改,删除。不知道用这种方法效率高不高??会出现什么异常状况?
作者: victor0423 发布时间: 2011-09-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28