首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
7赞
795
当前位置:
开发笔记
>
运维
> 正文
求助!Linux下C++程序如何修改系统IP?
作者:N个小灰流_701 | 2021-09-03 16:27
求助!Linux下C++程序如何修改系统IP?--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
项目是用C++做的,需要修改系统IP,本以为这种很通用的功能已经有成熟的方法了,没想到被卡住了。
系统版本是 NeoKylin 3.2.2(Carambola)x86_64
内核版本是 Linux 2.6.32-220.2.1.2.ky3.2.x86_64
需求:
1、在我们的界面上列出系统中所有的网卡和网卡上已有的地址(IP和掩码);
2、用户在我们的界面上选一个网卡,添加一个新的地址,或者替换一个已有地址(程序需要删除已有的IP地址);
3、程序执行修改,修改立刻生效,系统重启后修改不能消失。
如果通过 shell 中 的 ifconfig、ip addr命令,或者系统API ioctl(),系统重启后修改就消失了。用户可能在我们的界面上反复的改来改去,所以也不想在系统启动时执行一堆的添加、删除IP命令。
现在我们的做法是通过C++代码修改 /etc/sysconfig/network-scripts/ifcfg-eth* 文件,但是也有问题:
1、有时ifcfg-eth* 文件不存在
系统图形界面的右下角提供一个网络连接的配置工具,可以编辑连接。在该工具的界面中去掉一个连接的“对所有用户可用”选项后,network-scripts 目录下就没有 ifcfg-eth* 文件了,满硬盘也没找到被藏到哪里去了。我就这样被坑了。。。
2、有时ifcfg-eth* 文件有多个
还是用上边的工具,对一个网卡可以添加多个连接,然后只启用一个连接。这样,一个网卡就有多个ifcfg-eth* 文件,还不知道当前使用的是哪个文件,这些文件中可能有相同的IP。又被坑了。。。
3、ifcfg-eth* 文件名多种多样
谁说文件名只有ifcfg-eth0、ifcfg-eth1?还对应第0块网卡,第1块网卡。。。
实际的文件名有:ifcfg-eth0、ifcfg-System_eth0、ifcfg-有线连接_1。这么丰富的文件名,要与eth0、eth1对应起来,又又被坑。。。
难道这个很通用的功能,就没有标准的实现方式吗?等待高手指教,谢谢!
推荐阅读
程序员
在Ubuntu 15.10中无法终止使用python创建的sudo进程
如何解决《在Ubuntu15.10中无法终止使用python创建的sudo进程》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在扇形图中R与其他包比fanplot
如何解决《在扇形图中R与其他包比fanplot》经验,为你挑选了0个好方法。 ...
[详细]
程序员
在Smalltalk中,如果x是一个数组,并且x at:3 put:123将起作用,那么(x at:3)+ 1如何工作?
如何解决《在Smalltalk中,如果x是一个数组,并且xat:3put:123将起作用,那么(xat:3)+1如何工作?》经验,为你挑选了2个好方法。 ...
[详细]
程序员
str_replace"NA"出现意外行为
如何解决《str_replace"NA"出现意外行为》经验,为你挑选了0个好方法。 ...
[详细]
程序员
向活动添加按钮以打开浏览器URL
如何解决《向活动添加按钮以打开浏览器URL》经验,为你挑选了1个好方法。 ...
[详细]
程序员
CakePHP 3.1 patchEntity在清理时始终将belongsToMany关联标记为脏
如何解决《CakePHP3.1patchEntity在清理时始终将belongsToMany关联标记为脏》经验,为你挑选了0个好方法。 ...
[详细]
程序员
删除R中的反斜杠和引号
如何解决《删除R中的反斜杠和引号》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用SpreadsheetApp脚本重置范围颜色
如何解决《使用SpreadsheetApp脚本重置范围颜色》经验,为你挑选了1个好方法。 ...
[详细]
程序员
PostgreSQL子字符串在括号之间获取字符串
如何解决《PostgreSQL子字符串在括号之间获取字符串》经验,为你挑选了1个好方法。 ...
[详细]
程序员
当使用::?指定模块时,为什么Ruby不能在更高的范围内查找类?
如何解决《当使用::?指定模块时,为什么Ruby不能在更高的范围内查找类?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Sublime Text 3:将文本写入输出面板
如何解决《SublimeText3:将文本写入输出面板》经验,为你挑选了0个好方法。 ...
[详细]
程序员
如何在使用composer省略选择文件的同时需要包
如何解决《如何在使用composer省略选择文件的同时需要包》经验,为你挑选了0个好方法。 ...
[详细]
程序员
DataTable未加载SqlDataReader
如何解决《DataTable未加载SqlDataReader》经验,为你挑选了1个好方法。 ...
[详细]
程序员
显示隐藏文本与淡入淡出效果以及背景div?
如何解决《显示隐藏文本与淡入淡出效果以及背景div?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
与Route.php中的身份验证一起授权:Laravel 5.1
如何解决《与Route.php中的身份验证一起授权:Laravel5.1》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在编译时填充std :: array并使用const_cast填充可能的未定义行为
如何解决《在编译时填充std::array并使用const_cast填充可能的未定义行为》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何设置karma/jasmine与ionic2一起使用?
如何解决《如何设置karma/jasmine与ionic2一起使用?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用python设置组权限
如何解决《使用python设置组权限》经验,为你挑选了1个好方法。 ...
[详细]
程序员
ACRA发送自定义数据REPORTFIELD
如何解决《ACRA发送自定义数据REPORTFIELD》经验,为你挑选了1个好方法。 ...
[详细]
程序员
SQL Server - 来自简单愚蠢查询的差异结果?
如何解决《SQLServer-来自简单愚蠢查询的差异结果?》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
N个小灰流_701
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
apache
centos
debian
devops
docker
fabric
jenkins
k8s
linux
nginx
ssh
tomcat
ubuntu
vagrant
容器
服务器
负载均衡
RankList | 热门文章
1
iOS7:UICollectionView出现在UINavigationBar下
2
Resharper重新格式化String.Format()参数
3
无法在终端中找到XML架构命名空间错误的Spring NamespaceHandler
4
RENAME语句实际上如何工作?
5
在ArrayAdapter中重写getDropDownView时的样式问题
6
从DynamoDB导出数据
7
中型设备上的Bootstrap 3行中断
8
在Django中搜索并获取匹配的LDAP用户列表
9
InnoSetup - 代码签名证书
10
如何从ASP.NET MVC属性中获取枚举值?
11
如何将java泛型转换为Delphi
12
如何使用Spring框架遍历JSP中的列表
13
重新连接到asp.net MVC4应用程序中的Servicestack会话
14
为什么CLISP无法使用未加工名称调用某些函数?
15
使用Boost.Units定义百分比
16
在WinRT应用程序中使用SQLite时出现异常
17
jquery .on('input')不会仅在ie8中被触发
18
如何检查字符是否为元音?
19
如何从Sql Server中的TimeZoneOffset了解TimeZone StandardName或DayLightName
20
INSERT INTO表IF表存在,否则CREATE TABLE
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有