如何在嵌入式Linux中配置ip地址?

时间:2013-06-06 10:35:54

标签: c linux shell embedded-linux

我正在使用运行Linux的嵌入式设备(使用BusyBox)。我需要提供一个命令行工具来配置静态IP地址。有一些限制。

  1. 使用ifconfig将无法完成工作,因为它会在以后丢失 系统重启。
  2. 资源非常有限,没有GUI。
  3. 有一个vi文本编辑器可以修改Linux配置文件。但不知何故,这也不被接受。因为假设客户不知道如何使用vi或更深入地理解Linux。我需要提供一个工具,以便他们可以按下“ConfigMyIP 192.168.0.1 255.255.255.0”这样的工作并完成工作。
  4. 知道如何做到这一点? (使用shellC或两者)

3 个答案:

答案 0 :(得分:2)

我自己想出了另一个解决方案。一般的想法是创建一个可以在系统init目录中配置IP地址的shell脚本。这是代码:

#include <stdio>
#define MAXBUF 100

int main(int argc, char** argv)
{
    FILE* f;
    char content[MAXBUF];
    f = fopen("/etc/init.d/configip", "w+");
    strcat("#!/bin/sh\n", content);
    strcat("ifconfig ", content);
    strcat(argv[1], content);
    strcat(" ", content);
    strcat(argv[2], content);
    strcat(" up", content);
    fwrite(content, 1, strlen(content) + 1, f);
    fclose(f);
    return 0;
}

当使用“192.168.0.1 255.255.255.0”等参数执行该程序时,它将在etc/init.d中生成一个shell脚本:

#!/bin/sh
ifconfig 192.168.0.1 255.255.255.0 up

每次Linux启动时都会加载脚本。

答案 1 :(得分:0)

为什么不用您选择的语言编写程序,提示用户输入所需的IP地址?然后,将现有配置文件复制到备份版本,并通过一次读取备份版本来创建新配置文件。

如果该行指定了IP地址,则将其丢弃并写入新行,指定新IP地址,否则只需写入现有行。

如果客户从命令行输入参数很重要,如问题所示,那么请查看您选择的语言文档,以查看haw访问命令行参数。如果您使用的是C,那么请查看传递给argc的{​​{1}}和argv参数。

答案 2 :(得分:0)

如果我理解得很好,目标就会运行BusyBox

那么为什么不添加custom applet来提供这个“简单的界面”,允许用户永久修改相应的配置文件呢?

我认为此选项可能比外部程序更适合您所描述的非常有限的环境。