概述ifup(8)相当于C中的代码
我一直在寻找ifup的源代码,但是我找不到任何东西。 相反,我修改ifdown.c一点点,并有以下代码:
int ifup(char interface[]) { struct ifreq ifr[64]; struct ifconf ifc; int i,fd; int numif; int shaper; if ((fd = socket(AF_INET,SOCK_DGRAM,0)) < 0) { fprintf(stderr,\”ifdown: \”); perror(\”socket\”); return -1; } ifc.ifc_len = sizeof(ifr); ifc.ifc_req = ifr; if (ioctl(fd,SIocgIFCONF,&ifc) < 0) { fprintf(stderr,\”ifup: \”); perror(\”SIocgIFCONF\”); close(fd); return -1; } numif = ifc.ifc_len / sizeof(struct ifreq); for (shaper = 1; shaper >= 0; shaper–) { for (i = 0; i < numif; i++) { if (strcmp(ifr[i].ifr_name,interface) == 0){ ifr[i].ifr_flags |= (IFF_UP); if (ioctl(fd,SIOCSIFFLAGS,&ifr[i]) < 0) { fprintf(stderr,\”ifup: shutdown \”); perror(ifr[i].ifr_name); } } } } close(fd); return 0; }
如果我做ifdown(\”wlan0\”); ifup(\”wlan0\”); 通过使用上面的代码,它禁用然后启用接口。 最后,我看到接口在iwconfig上有一个IP地址和essID等。 我可以Ping我的路由器,但是,我不能Ping任何域或直接的IP地址
Ping 74.125.232.98输出
connect: Network is unreachable
除非我通过networkingpipe理器断开并再次连接到我的路由器。
我如何以编程方式find我的MEGAsync文件夹?
C急EXE应打开时要求“以pipe理员身份运行”提示
如何在C语言内嵌汇编语言forloop?
以编程方式打开WPF应用程序中的“设置关联”?
如何deBUGging无追踪的崩溃
如果从terminal使用ifup(8) ,则不存在这样的问题。
任何人都可以告诉我还有什么需要做的上面的代码工作ifup(8) ?
在C#应用程序中定期读取文本文件的内容
fork()ing时是否共享文件描述符?
为什么LD_PRELOAD不能用于加载的共享库之一?
罗技摄像头USB C windows
linux的c + + xlib,处理器去快?
你必须设置一个默认路由。 ifup命令会自动为您设置默认路由。 你可以通过在ifup调用之前和之后运行$ route -n来看到。
btw谢谢你的代码是非常有用的。
在到达外部主机之前,您还必须设置路由
总结
以上是内存溢出为你收集整理的ifup(8)相当于C中的代码全部内容,希望文章能够帮你解决ifup(8)相当于C中的代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容