我正在开发一些运行在CentOS 5.xx上的软件。 我们不允许客户login到Linux,一切都是从我们开发的Windows应用程序完成的。
所以我们为用户build立一个前端来configurationnetworking设置:静态/ DHCP,IP地址,网关,DNS,主机名。
现在,我让用户在Windows应用程序中input信息,然后将其写入Linux服务器,如下所示:
所有这些似乎都有效,但是有没有更好/更简单的方法来做到这一点?
另外,我几乎以同样的方式读取networkingconfiguration,但如果使用DHCP,则会丢失som信息,例如IP地址。 我知道我可以从命令行(ifconfig)得到一些信息,但我没有得到例如主机名,网关和DNS。 有没有一个命令行工具,将显示此?
你正在写正确的信息,但是你需要去命令行阅读你所说的信息。
IP从ip addr show <interface>或ip addr show all并parsing。 ifconfig是这个稍旧的命令。
默认网关也是从ip route show中获取的(route show或netstat -rn以不同的格式给出相同的信息 – ip是用于configuration的新命令)
DNS服务器几乎总是/etc/resolv.conf ,所以阅读应该没问题。 /etc/nsswitch.conf是configuration的地方…默认情况下, /etc/hosts将覆盖您的DNS服务器设置。
主机名是通过运行hostname名获得的
可能是Webmin。 虽然它是一个基于networking的应用程序,但我不确定它将适用于所有networkingconfiguration更改。
不确定我是否遵循问题的主要部分,但最后一部分相当简单。 没有一个程序显示你正在寻找的所有东西,但是hostname显示当前的主机名, netstat -r会显示networking路由数据和默认网关(如果已经设置的话)。 dig会显示当前使用的域名服务器。 特别:
dig `hostname` | grep SERVER
应该返回类似的东西
;; SERVER: 68.94.156.1#53(68.94.156.1)