+ -
当前位置:首页 → 问答吧 → 嵌入式linux编程,关于ip和dns手动和自动设置的问题(dhcp)

嵌入式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服务器配置有关吗?

作者: victor0423   发布时间: 2011-09-19

另外,为了记住上次的选择状态,我创建了个配置文件,就是一个键名对应一个字符串值或地址,程序每次启动都会读取。我读写的方法都是通过system调用shell命令(如echo,awk)实现键值对创建,更改,删除。不知道用这种方法效率高不高??会出现什么异常状况?

作者: victor0423   发布时间: 2011-09-19