当前位置: 技术问答>linux和unix
请问怎么在嵌入式linux系统中编程设置本机ip地址?
来源: 互联网 发布时间:2015-04-03
本文导语: 相当于编一个功能为ifconfig命令的程序,为本机设置ip地址,请执教。。 | #include #include #include #include #include #include #include #include #include int ifconfig(const char *ifname, const char *ipa...
相当于编一个功能为ifconfig命令的程序,为本机设置ip地址,请执教。。
|
#include
#include
#include
#include
#include
#include
#include
#include
#include
int ifconfig(const char *ifname, const char *ipaddr)
{
struct sockaddr_in sin;
struct ifreq ifr;
int fd;
int ret;
char *ptr;
short found_colon = 0;
bzero(&ifr, sizeof(struct ifreq));
if (ifname == NULL)
return (-1);
if (ipaddr == NULL)
return (-1);
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd == -1)
{
perror("Not create network socket connectionn");
return (-1);
}
strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(ipaddr);
memcpy(&ifr.ifr_addr, &sin, sizeof(sin));
if (ioctl(fd, SIOCSIFADDR, &ifr)
#include
#include
#include
#include
#include
#include
#include
#include
int ifconfig(const char *ifname, const char *ipaddr)
{
struct sockaddr_in sin;
struct ifreq ifr;
int fd;
int ret;
char *ptr;
short found_colon = 0;
bzero(&ifr, sizeof(struct ifreq));
if (ifname == NULL)
return (-1);
if (ipaddr == NULL)
return (-1);
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd == -1)
{
perror("Not create network socket connectionn");
return (-1);
}
strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(ipaddr);
memcpy(&ifr.ifr_addr, &sin, sizeof(sin));
if (ioctl(fd, SIOCSIFADDR, &ifr)