linux ip 设置与获取
来源:互联网 发布:网络歌手翻唱 编辑:程序博客网 时间:2024/06/05 16:55
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<sys/socket.h>
#include<sys/ioctl.h>
#include <net/if.h>
#include <arpa/inet.h>
int network_get_ipaddr(int sock_id,char *interface_name, char *ipaddr)
{
struct ifreq ifr;
struct sockaddr_in * ptr;
bzero((char *)&ifr, sizeof(ifr));
strcpy(ifr.ifr_name,interface_name);
if (ioctl(sock_id,SIOCGIFADDR,&ifr) < 0)
{
printf("SIOCGIFADDR failed: %s\n", strerror(errno));
return -1;
}
ptr = (struct sockaddr_in *)&(ifr.ifr_ifru.ifru_addr);
memcpy((char*)ipaddr, (char*)&ptr->sin_addr, sizeof(unsigned long));
printf("IP:%s\n",inet_ntoa(ptr->sin_addr));
return 0;
}
int network_set_ipaddr(int sock_id,char *interface_name, char *ipaddr)
{
struct ifreq ifr;
struct sockaddr_in addr;
bzero((char *)&ifr, sizeof(ifr));
strcpy(ifr.ifr_name,interface_name);
memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, interface_name, sizeof(ifr.ifr_name)-1);
bzero(&addr,sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
inet_aton(ipaddr,&addr.sin_addr);
memcpy((char*)&ifr.ifr_ifru.ifru_addr,(char*)&addr,sizeof(addr));
if (ioctl(sock_id,SIOCSIFADDR,&ifr) < 0)
{
printf("SIOCSIFADDR failed: %s\n", strerror(errno));
return -1;
}
return 0;
}
int main()
{
int sock_id;
char ifname[]="eth0";
char ip[16]="192.168.22.176";
char ip1[16];
sock_id=socket(AF_INET,SOCK_DGRAM,0);
if (sock_id < 0)
{
printf("socket failed: %s\n", strerror(errno));
return -1;
}
network_set_ipaddr(sock_id,ifname, ip);
network_get_ipaddr(sock_id,ifname, ip1);
return 0;
}
- linux ip 设置与获取
- linux下程序设计-IP获取与设置
- linux 设置ip与dns
- linux 获取和设置系统ip
- linux下获取/设置mac和ip
- linux 虚拟机下设置IP自动获取。
- linux 静态IP设置 DHCP自动获取IP
- Linux 设置IP,gate, 以及自动获取IP的方法
- linux C 获取与修改IP地址
- linux C 获取与修改IP地址
- linux C 获取与修改IP地址
- linux C 获取与修改IP地址
- Linux系统修改主机名与IP设置
- linux 静态与动态ip设置
- Linux:静态IP配置与防火墙设置
- Linux服务器设置网卡IP与单网卡多IP
- linux下获取设置ip地址等函数
- linux下获取设置ip地址等函数
- 学习篇---SatelliteMenu实现
- POJ 1129 Channel Allocation 请用爆搜
- IOS 播放音效
- 常用css命名规则
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- linux ip 设置与获取
- 数据库操作(使用FMDB)
- Apache server结合Tomcat配置集群与负载均衡
- 随机比较10个数大小(从小到大)选择排序法
- PHP的开发环境介绍
- nginx反向代理hadoop集群管理页面
- 个人信息
- iOS 播放音乐
- Spark版本定制4-Spark Streaming事务处理彻底理解