Chinaunix首页 | 论坛 | 博客
  • 博客访问: 179960
  • 博文数量: 108
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1065
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-29 08:56
文章分类

全部博文(108)

文章存档

2011年(11)

2010年(46)

2009年(29)

2008年(22)

我的朋友

分类: LINUX

2010-03-08 15:38:53

struct in6_ifreq
{
struct in6_addr ifr6_addr;
uint32_t ifr6_prefixlen;
unsigned int ifr6_ifindex;
};

int sockfd6; 
struct ifreq ifr;
struct in6_ifreq ifreq6;

sockfd6 = socket(AF_INET6, SOCK_DGRAM, 0);
//
strcpy(ifr.ifr_name, "eth0");  //:)
ioctl(sockfd6, SIOCGIFINDEX, &ifr);
//
inet_pton(AF_INET6, IPv6_string, &ifreq6.ifr6_addr);
ifreq6.ifr6_prefixlen = 64;  //:)
ifreq6.ifr6_ifindex = ifr.ifr_ifindex;
ioctl(sockfd6,SIOCSIFADDR, &ifreq6);
//

close(sockfd6); 


/***************************

*deleteIP

****************************/

#include
#include
#include
#include
#include
#include

#include
#include
#include
#include
#include
#include
//#include
#include
#include
#include
#include
#include
#include

struct in6_ifreq
  {
      struct in6_addr ifr6_addr;
      unsigned int ifr6_prefixlen;
      unsigned int ifr6_ifindex;
  };

int main(int argc, char* argv[] )
{
 

  int sockfd6;   
  struct ifreq ifr;
  struct in6_ifreq ifreq6;
  int ret;

   sockfd6 = socket(AF_INET6, SOCK_DGRAM, 0);          
  
   //
   strcpy(ifr.ifr_name, "eth1");//:)
   ret = ioctl(sockfd6, SIOCGIFINDEX, &ifr);
   if(ret <0)
   {
   printf("%d\n",__LINE__);
   }
      
   //
   inet_pton(AF_INET6, argv[1], &ifreq6.ifr6_addr); 
   ifreq6.ifr6_prefixlen = 64;//:)
   ifreq6.ifr6_ifindex = ifr.ifr_ifindex;
   ret = ioctl(sockfd6,SIOCDIFADDR, &ifreq6);
   if(ret <0)
   {
         perror("deletip: ");
      printf("%d\n",__LINE__);
   }
  
   //
   close(sockfd6);
}



阅读(1322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~