打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
c/c 网络编程 UDP 改变IP地址

1,改变ipv4的地址

#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <net/if.h>#include <arpa/inet.h>int main(){  int fd;  ifreq ifr;  sockaddr_in *s_in;  fd = socket(AF_INET, SOCK_DGRAM, 0);  s_in = (sockaddr_in*)&ifr.ifr_addr;  s_in->sin_family = AF_INET;  s_in->sin_addr.s_addr = inet_addr("10.0.2.15");  strncpy(ifr.ifr_name, "enp0s3", IFNAMSIZ - 1);  if(ioctl(fd, SIOCSIFADDR, &ifr) != 0){    perror("ioctl");    return 1;  }  close(fd);  return 0;}

github源代码

2,改变ipv6的地址

#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <net/if.h>#include <arpa/inet.h>struct in6_ifreq{  struct in6_addr ifr6_addr;  u_int32_t ifr6_prefixlen;  int ifr6_ifindex;};int main(){  int fd;  in6_ifreq ifr;  int n;  fd = socket(AF_INET6, SOCK_DGRAM, 0);  memset(&ifr, 0, sizeof(ifr));  inet_pton(AF_INET6, "2003::1", &ifr.ifr6_addr);  ifr.ifr6_prefixlen = 64;  ifr.ifr6_ifindex = if_nametoindex("enp0s3");  n = ioctl(fd, SIOCSIFADDR, &ifr);  if(n < 0){    perror("ioctl");    return 1;  }  close(fd);  return 0;}

github源代码

3,删除ipv6的地址

#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <net/if.h>#include <arpa/inet.h>struct in6_ifreq{  struct in6_addr ifr6_addr;  u_int32_t ifr6_prefixlen;  int ifr6_ifindex;};int main(){  int fd;  in6_ifreq ifr;  int n;  fd = socket(AF_INET6, SOCK_DGRAM, 0);  memset(&ifr, 0, sizeof(ifr));  inet_pton(AF_INET6, "2003::1", &ifr.ifr6_addr);  ifr.ifr6_prefixlen = 64;  ifr.ifr6_ifindex = if_nametoindex("enp0s3");  n = ioctl(fd, SIOCDIFADDR, &ifr);  if(n < 0){    perror("ioctl");    return 1;  }  close(fd);  return 0;}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编程时怎样获取广播地址?
《Linux网络接口》---------struct ifreq struct ifconf
分享几个实用的代码片段(附代码例子)
linux下利用C语言获取mac地址 - Linux平台C语言开发专版 - LUPA开源社...
socket套接字UDP编程实例
ioctl函数详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服