linux C 获取与修改IP地址
2010-11-06 15:20
603 查看
//setip.h
#ifndef_INCLUDE_SETIP_H_
#define _INCLUDE_SETIP_H_
//设置IP地址
/*
*函数名称:intsetip(char*ip)
*函数功能:设置系统IP地址
*参数:
*char*ip:设置的IP地址,以点分十进制的字符串方式表示,如“192.168.0.5”
*返回值:0:成功;-1:失败
*/
int setip(char *ip);
//获取IP地址
/*
*函数名称:char*getip(char*ip_buf)
*函数功能:获取系統IP地址
*参数:
*char*ip_buf:用来存放IP地址的内存空间
*返回值:ip_buf:存放IP地址的内存地址
*/
char
*getip(char
*ip_buf);
#endif //_INCLUDE_SETIP_H_
//endsetip.h
//setip.c
#include<stdio.h>
#include<stdlib.h>
#include<string .h>
#include<sys/ioctl.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in .h>
#include<net/if .h>
#include"setip.h"
//设置IP地址
/*
*函数名称:intsetip(char*ip)
*函数功能:设置系统IP地址
*参数:
*char*ip:设置的IP地址,以点分十进制的字符串方式表示,如“192.168.0.5”
*返回值:0:成功;-1:失败
*/
int setip(char *ip)
{
struct
ifreqtemp;
struct
sockaddr_in*addr;
int
fd=0;
int
ret=-1;
strcpy(temp.ifr_name,"eth0"
);
if
((fd=socket(AF_INET,SOCK_STREAM,0))<0)
{
return
-1;
}
addr=(struct
sockaddr_in*)&(temp.ifr_addr);
addr->sin_family=AF_INET;
addr->sin_addr.s_addr=inet_addr(ip);
ret=ioctl(fd,SIOCSIFADDR,&temp);
close(fd);
if
(ret<0)
return
-1;
return
0;
}
//获取IP地址
/*
*函数名称:char*getip(char*ip_buf)
*函数功能:获取系統IP地址
*参数:
*char*ip_buf:用来存放IP地址的内存空间
*返回值:ip_buf:存放IP地址的内存地址
*/
char
*getip(char
*ip_buf)
{
struct
ifreqtemp;
struct
sockaddr_in*myaddr;
int
fd=0;
int
ret=-1;
strcpy(temp.ifr_name,"eth0"
);
if
((fd=socket(AF_INET,SOCK_STREAM,0))<0)
{
return
-1;
}
ret=ioctl(fd,SIOCGIFADDR,&temp);
close(fd);
if
(ret<0)
return
NULL;
myaddr=(struct
sockaddr_in*)&(temp.ifr_addr);
strcpy(ip_buf,inet_ntoa(myaddr->sin_addr));
return
ip_buf;
}
/*测试程序*/
/*
inttest_fun(intargc,char*argv[])
{
char*ip="172.20.223.117";
charbuf[16]="";
setip(argv[1]);
printf("ipaddr=%s/n",getip(buf));
return0;
}
*/
//endsetip.c
相关文章推荐
- linux 利用ioctl函数获取IP地址、子网掩码、MAC地址和修改本机IP地址、子网掩码、网关
- linux C 获取与修改IP地址
- linux C 获取与修改IP地址
- Linux下C语言获取和修改本机IP地址
- LINUX下获取IP地址和MAC地址
- Linux下修改主机IP地址的三种方法
- Linux下通过shell获取网卡的ip地址和mac地址
- linux动态修改IP地址
- 虚拟机下的Linux自动获取IP地址
- linux下获取本机IP地址
- 在linux下 获取,修改本机IP地址的两个函数
- Linux下如何修改IP地址
- Linux 树莓派 网络编程中服务端通过套接字获取客户端ip地址
- LINUX修改IP地址
- C 语言实现linux读取和修改IP地址
- Linux下安装oracle后修改IP地址
- Linux修改IP地址及激活网卡
- Linux下获取系统的IP,子网掩码,网关,MAC和配置文件的修改
- linux ip地址自动获取,ip地址…
- linux 静态与动态修改IP地址