问答文章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
三角蟾应该放在吧台的左前方还是右前方 江西省普通高中学生综合素质优秀自我评价范文 江西省余干中学基础设施 江西中学生综合素质评价怎么写 南昌市有什么高中是可以住校的啊 江西省上高中学校园环境 南昌哪些高中有宿舍 辛未 庚寅 丁巳 辛丑 男命,婚姻怎么样,什么时候才能结婚? 辛未 辛丑 乙酉日 酉时命运如何? 谈谈你对中医的认识 求一个c语言脚本可以直接切换到其他地区的IP地址,需要如何操作或者是需要先保存其他IP地址导入切换? C语言 关于IP地址的程序问题 慢羊羊头上为什么长草呀?有什么用?要是没有会怎么样。 《喜洋洋与灰太狼》中慢羊羊头上为什么长草呢? 如何用C语言设置本地IP地址 慢羊羊为什么头顶上有一颗草呢? 慢羊羊头上的草是什么意思呢? 慢羊羊头上为什么长草?天呐,我问的是为什么,不是问那草是干什么用的……谢谢!!! 为什么羊村的村长慢羊羊的头上有时候会有草呢? 为什么慢羊羊头上有一根草?谢谢了,大神帮忙啊 慢羊羊头上为什么长草??拜托各位大神 为什么慢羊羊思考的时候头上会长聪明草??? 慢羊羊的头上为什么会长草啊?为什么叫他一颗草呢拜托各位了 3Q 慢羊羊头上为什么会长草? 请问如何设置oracle共享池,java池,这些个数值的大小? 开金尚宫韩式烤肉加盟连锁店一般需要多少钱 金尚宫烤肉怎么样 怎样做金尚宫韩国烤肉馆里那种烤肉蘸酱啊?应该属于朝鲜辣椒酱吧? 惠州92平方米房子,房子已经过了五年,有贷款未还清,,请问过户大概需要多少钱??算个大概 房屋合计28万&#54;应缴纳多少契税 用c语言 编写或c++ IP(不要使用windows网络编程) 用c语言或c++编写一个程序恢复IP地址? 2021年填报志愿注意事项有哪些? 2021年填报志愿有哪些注意事项? 求路过的来说说,小额贷款公司哪个比较可靠?上海这的 香港金银业贸易场AA类行员都有谁? 电磁继电器的工作原理、作用及实际应用 在家中如何练习腹肌? 香港金银业贸易场行员中哪个好? 香港金银业贸易场有多少家行员 如果股票永远不分红,这支股票的实际价值是什么?不分红的股票有什么用? 股票不分红,业绩还有什么意义? 如果一支股票永远也不会有利润分红,对于一般的投资者来说买这支股票还有意义么? 中国的股票不分红持它有什么用 股票分红帐面金额没增加,分红有什么意义 股票如果永远不分红,那和炒废纸有什么区别。 很多公司盈利也不分红,这样股价升跌和股票持有人有什么意义?为什么还要买? 欧盟人工智能伦理准则 腐竹的泡发方法 晚上喝一碗粥,吃一个很小的包子,一根黄瓜,会胖吗?