问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

linux 里通过想写一个c语言的文件 ,通过执行文件可以修改ifcfg-eth0中的IPADDR的值

发布网友 发布时间:2022-05-05 16:58

我来回答

1个回答

热心网友 时间:2023-10-09 02:58

//获取本机IP地址函数

view plaincopy to clipboardprint?
01.QString GetLocalIp()
02.{
03.
04. int sock_get_ip;
05. char ipaddr[50];
06.
07. struct sockaddr_in *sin;
08. struct ifreq ifr_ip;
09.
10. if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)
11. {
12. printf("socket create failse...GetLocalIp!\n");
13. return "";
14. }
15.
16. memset(&ifr_ip, 0, sizeof(ifr_ip));
17. strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);
18.
19. if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )
20. {
21. return "";
22. }
23. sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;
24. strcpy(ipaddr,inet_ntoa(sin->sin_addr));
25.
26. printf("local ip:%s \n",ipaddr);
27. close( sock_get_ip );
28.
29. return QString( ipaddr );
30.}
QString GetLocalIp()
{

int sock_get_ip;
char ipaddr[50];

struct sockaddr_in *sin;
struct ifreq ifr_ip;

if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("socket create failse...GetLocalIp!\n");
return "";
}

memset(&ifr_ip, 0, sizeof(ifr_ip));
strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);

if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )
{
return "";
}
sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;
strcpy(ipaddr,inet_ntoa(sin->sin_addr));

printf("local ip:%s \n",ipaddr);
close( sock_get_ip );

return QString( ipaddr );
}

//修改本机IP地址的函数

int SetLocalIp( const char *ipaddr )
{

int sock_set_ip;

struct sockaddr_in sin_set_ip;
struct ifreq ifr_set_ip;

bzero( &ifr_set_ip,sizeof(ifr_set_ip));

if( ipaddr == NULL )
return -1;

if(sock_set_ip = socket( AF_INET, SOCK_STREAM, 0 ) == -1);
{
perror("socket create failse...SetLocalIp!\n");
return -1;
}

memset( &sin_set_ip, 0, sizeof(sin_set_ip));
strncpy(ifr_set_ip.ifr_name, "eth0", sizeof(ifr_set_ip.ifr_name)-1);

sin_set_ip.sin_family = AF_INET;
sin_set_ip.sin_addr.s_addr = inet_addr(ipaddr);
memcpy( &ifr_set_ip.ifr_addr, &sin_set_ip, sizeof(sin_set_ip));

if( ioctl( sock_set_ip, SIOCSIFADDR, &ifr_set_ip) < 0 )
{
perror( "Not setup interface\n");
return -1;
}

//设置激活标志
ifr_set_ip.ifr_flags |= IFF_UP |IFF_RUNNING;

//get the status of the device
if( ioctl( sock_set_ip, SIOCSIFFLAGS, &ifr_set_ip ) < 0 )
{
perror("SIOCSIFFLAGS");
return -1;
}

close( sock_set_ip );
return 0;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
道具“山”怎么做?(悬赏10呀) 老表你好hea23集片尾曲叫什么? 老表你好hea23集利亚唱的歌叫什么 河北赵县特产:梨园金蝉 cad字体有大有小,怎么调一致,如图 相亲对象都有啥特点? 良好的交往对象具有怎样的特点 良好的交往对象具有什么特点 现在我的微粒贷上只有1千的额度,怎么才能提升它的额度? 请问怎么在微粒贷上提高借贷额度? 求一个c语言脚本可以直接切换到其他地区的IP地址,需要如何操作或者是需要先保存其他IP地址导入切换? C语言 关于IP地址的程序问题 慢羊羊头上为什么长草呀?有什么用?要是没有会怎么样。 《喜洋洋与灰太狼》中慢羊羊头上为什么长草呢? 如何用C语言设置本地IP地址 慢羊羊为什么头顶上有一颗草呢? 慢羊羊头上的草是什么意思呢? 慢羊羊头上为什么长草?天呐,我问的是为什么,不是问那草是干什么用的……谢谢!!! 为什么羊村的村长慢羊羊的头上有时候会有草呢? 为什么慢羊羊头上有一根草?谢谢了,大神帮忙啊 慢羊羊头上为什么长草??拜托各位大神 为什么慢羊羊思考的时候头上会长聪明草??? 慢羊羊的头上为什么会长草啊?为什么叫他一颗草呢拜托各位了 3Q 慢羊羊头上为什么会长草? 请问如何设置oracle共享池,java池,这些个数值的大小? 开金尚宫韩式烤肉加盟连锁店一般需要多少钱 金尚宫烤肉怎么样 怎样做金尚宫韩国烤肉馆里那种烤肉蘸酱啊?应该属于朝鲜辣椒酱吧? 惠州92平方米房子,房子已经过了五年,有贷款未还清,,请问过户大概需要多少钱??算个大概 房屋合计28万&#54;应缴纳多少契税 用c语言 编写或c++ IP(不要使用windows网络编程) 用c语言或c++编写一个程序恢复IP地址? 2021年填报志愿注意事项有哪些? 2021年填报志愿有哪些注意事项? 求路过的来说说,小额贷款公司哪个比较可靠?上海这的 香港金银业贸易场AA类行员都有谁? 电磁继电器的工作原理、作用及实际应用 在家中如何练习腹肌? 香港金银业贸易场行员中哪个好? 香港金银业贸易场有多少家行员 如果股票永远不分红,这支股票的实际价值是什么?不分红的股票有什么用? 股票不分红,业绩还有什么意义? 如果一支股票永远也不会有利润分红,对于一般的投资者来说买这支股票还有意义么? 中国的股票不分红持它有什么用 股票分红帐面金额没增加,分红有什么意义 股票如果永远不分红,那和炒废纸有什么区别。 很多公司盈利也不分红,这样股价升跌和股票持有人有什么意义?为什么还要买? 欧盟人工智能伦理准则 腐竹的泡发方法 晚上喝一碗粥,吃一个很小的包子,一根黄瓜,会胖吗?
  • 焦点

最新推荐

猜你喜欢

热门推荐