【问题标题】:Change IP settings programmatically in Linux with C/C++使用 C/C++ 在 Linux 中以编程方式更改 IP 设置
【发布时间】:2015-03-27 02:33:36
【问题描述】:

如何使用 C/C++ 在 Linux 中更改 IP 设置[主要是 IP 地址、子网掩码和默认网关]?我见过使用套接字的例子,但没有太多[除了它们不起作用]。我试过this question,但它不起作用。

每当我尝试代码时,我都会使用 ifconfig 查看我的网络配置,但它们仍然相同。我有 openSUSE 13.2 并且有无线和以太网可用的连接。

我认为另一种解决方案是更改接口的相应脚本文件,但我找不到这些脚本文件的位置。

【问题讨论】:

  • 您是否尝试使用root 权限运行您的应用程序?我认为没有其他方法可以通过C/C++ 更改它,而是使用 linux/unix 头文件和库。
  • 嗯,好问题。让我试试看。
  • 最初成功了!我会做进一步的测试来确定。谢谢大佬!

标签: c++ c linux network-programming ip


【解决方案1】:

在大多数情况下,此类操作需要 root 访问权限。以 root 权限运行您的应用程序,它会使其工作。

【讨论】:

  • 感谢您的帮助。我有两个问题;第一个是如何设置默认网关?我提到的问题中的第二个问题是为什么建议使用 'struct sockaddr_in*' 而不是 'struct ifreq' ?我的意思是第二个对我有用。
  • 设置默认网关我相信解释here。第二个问题——不知道。在那里发表评论,并询问提出该建议的人。祝你好运。
  • 您提供的代码工作正常,但它增加了另一条路线。我可以更改当前默认网关而不添加新网关吗?
  • 也许您必须先删除默认网关?另外,这是另一个link。不要羞于谷歌它,它很容易被谷歌搜索到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 2016-02-25
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 2011-02-04
  • 2021-09-20
相关资源
最近更新 更多