1. #include "stdio.h"
  2. #include "windows.h"
  3.  
  4. void GetHostWLAN_IPv4_AND_MAC(char IPv4[], char MAC[]); //获取WLAN下的IPv4和MAC地址,局域网网关IPv4地址(基于win10中文版编写)
  5.  
  6. int main()
  7. {
  8. char IPv4[] = { };
  9. char MAC[] = { };
  10. GetHostWLAN_IPv4_AND_MAC(IPv4,MAC);
  11. printf("%s %d\n", IPv4, strlen(IPv4));
  12. printf("%s %d\n", MAC, strlen(MAC));
  13. return ;
  14. }
  15.  
  16. void GetHostWLAN_IPv4_AND_MAC(char IPv4[],char MAC[])
  17. {
  18. memset(IPv4, , sizeof(IPv4));
  19. memset(MAC, , sizeof(MAC));
  20. system("ipconfig/all > E:\\ipconfig.txt");
  21. FILE *fp = fopen("E:\\ipconfig.txt", "r");
  22. if (!fp)
  23. {
  24. printf("failed to open file!");
  25. exit(-);
  26. }
  27. char strInfo[] = { };
  28. bool find_wlan = false;
  29. bool find_mac = false;
  30. bool find_ipv4 = false;
  31. int i, pos;
  32. while (fgets(strInfo, , fp) != NULL)
  33. {
  34. if (strstr(strInfo, "WLAN") != NULL)
  35. find_wlan = true;
  36.  
  37. if (find_wlan)
  38. {
  39. if (strstr(strInfo, "物理地址") != NULL) //获取MAC地址
  40. {
  41. pos = ;
  42. for (i = strlen(strInfo);; i--)
  43. {
  44. if (strInfo[i - ] != '\0'&&pos >= )
  45. {
  46. if (strInfo[i - ] != '-')
  47. MAC[pos--] = strInfo[i - ];
  48. else
  49. MAC[pos--] = ':';
  50. }
  51. else
  52. {
  53. find_mac = true;
  54. break;
  55. }
  56. }
  57. }
  58.  
  59. if (strstr(strInfo, "IPv4") != NULL) //获取IPv4地址
  60. {
  61. for (i = ;; i++)
  62. {
  63. if (strInfo[i] == ':')
  64. break;
  65. }
  66. pos = i+;
  67. for (i=;; i++,pos++)
  68. {
  69. if (strInfo[pos] != '\0'&&strInfo[pos] != '(')
  70. IPv4[i] = strInfo[pos];
  71. else
  72. {
  73. find_ipv4 = true;
  74. break;
  75. }
  76. }
  77. }
  78.  
  79. }
  80. if (find_mac && find_ipv4 && find_gateway)
  81. break;
  82. memset(strInfo, , );
  83. }
  84. }

如何通过C语言获取主机WLAN下的IPv4地址,MAC地址的更多相关文章

  1. 虚拟机下linux迁移造成MAC地址异常处理办法

    虚拟机下linux迁移造成MAC地址异常处理办法 Linux无法启用网卡:Device eth0 has different MAC address than expected,ignoring解决 ...

  2. C语言实现Windows下获取IP和MAC地址。

    C语言实现Windows下获取IP和MAC地址. #include <winsock2.h> #include <stdio.h> #include <stdlib.h& ...

  3. Linux下修改网卡的mac地址

    方法1: # ifconfig ethX down # ifconfig ethX hw ether NEW_MAC_ADDR # ifconfig ethX up 但是这样重启后就失效了,需要再敲一 ...

  4. 嵌入式 Linux下修改MAC地址

    Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth ...

  5. 通过mac地址确认二层交换机某个端口下接的终端设备IP

    正常来说,二层交换机主要是通过mac地址进行通信的,这就导致我们无法直接通过arp表来确认交换机端口下终端设备的IP: 但我们仍然能通过查找二层交换机端口下学习到的mac地址,然后通过对照三层核心交换 ...

  6. VMware虚拟机在仅主机模式下的网卡无法动态获取IP

    自己在VMware虚拟机中开启一台主机的时候,发现比以往的开机速度慢了好多,起初不以为然,直到用Xshell通过ssh远程连接eth1的ip地址才发现连接失败(这个ip是之前eth1正常的时候获取的i ...

  7. Linux系统下用C语言获取MAC地址

    最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下.如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址 ...

  8. 查看局域网内所有的主机名、MAC地址和IP地址

    查看所有 IP at MAC $ arp -a ? (10.125.49.187) at 18:81:e:eb:ef:c0 on en0 ifscope [ethernet] ? (10.125.50 ...

  9. Windows下查看局域网内某台计算机的MAC地址

    我们知道在局域网中,在Windows下,查看局域网内其他主机的ip和对应mac地址的命令是: arp -a 这样可以看到ip和mac地址的对应关系,还是比较方便的 但是有些时候使用arp命令并不能列出 ...

随机推荐

  1. 题解 loj2065 「SDOI2016」模式字符串

    点分治. 考虑经过当前分治中心\(u\)的点对数量. 这种数点对数的问题,有一个套路.我们可以依次考虑\(u\)的每个儿子,看用当前的儿子,能和之前已经考虑过的所有儿子,组成多少点对.这样所有合法的点 ...

  2. esxi 版本升级命令

    先把zip文件通过XShell或者WinSCP上传到esxi服务器上面去,然后执行以下命令,完成升级并重启就可以了.

  3. C++的bitset(位操作使用),转载

    有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值.位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法.标准库提供了bitset类使得处理位集合更容易一些.要使 ...

  4. 017、Java中使用float型

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  5. Spark Storage 模块

    http://jerryshao.me/architecture/2013/10/08/spark-storage-module-analysis/ 大神写的太好了,我就不重复造轮子了. Spark ...

  6. Ado.NET SQLHelper(2)

    测试发现前面发的那个功能太简单,不能调用getdate()等内部函数.  完善后重载了insert和update两个功能,将函数作为字符串传入SQL语句构造,需要的可以试用一下   using Sys ...

  7. pyhton matplotlib可视化图像基础(二维函数图、柱状图、饼图、直方图以及折线图)

    //2019.07.22pyhton中matplotlib模块的应用pyhton中matplotlib是可视化图像库的第三方库,它可以实现图像的可视化,输出不同形式的图形1.可视化图形的输出和展示需要 ...

  8. Tornadao Cookie

    cookie的详细介绍.Tronado带签名的cookie原理.基于cookie实现用户验证 cookie详细介绍 cookie本质就是存于浏览器的 键值对. 特性: 每次http请求服务端的时候,都 ...

  9. IDEA启动Tomcat报错Address localhost:1099 is already in use解决办法

    问题:Error running 'lugia-web': Address loaclhost:1099 is already in use如下图 解决方法:cmd输入下面命令: netstat -a ...

  10. 51nod 1065:最小正子段和

    1065 最小正子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  取消关注 N个整数组成的序列a[1],a[2],a[3],-,a[n],从中选出一 ...