如何通过C语言获取主机WLAN下的IPv4地址,MAC地址
#include "stdio.h"
#include "windows.h" void GetHostWLAN_IPv4_AND_MAC(char IPv4[], char MAC[]); //获取WLAN下的IPv4和MAC地址,局域网网关IPv4地址(基于win10中文版编写) int main()
{
char IPv4[] = { };
char MAC[] = { };
GetHostWLAN_IPv4_AND_MAC(IPv4,MAC);
printf("%s %d\n", IPv4, strlen(IPv4));
printf("%s %d\n", MAC, strlen(MAC));
return ;
} void GetHostWLAN_IPv4_AND_MAC(char IPv4[],char MAC[])
{
memset(IPv4, , sizeof(IPv4));
memset(MAC, , sizeof(MAC));
system("ipconfig/all > E:\\ipconfig.txt");
FILE *fp = fopen("E:\\ipconfig.txt", "r");
if (!fp)
{
printf("failed to open file!");
exit(-);
}
char strInfo[] = { };
bool find_wlan = false;
bool find_mac = false;
bool find_ipv4 = false;
int i, pos;
while (fgets(strInfo, , fp) != NULL)
{
if (strstr(strInfo, "WLAN") != NULL)
find_wlan = true; if (find_wlan)
{
if (strstr(strInfo, "物理地址") != NULL) //获取MAC地址
{
pos = ;
for (i = strlen(strInfo);; i--)
{
if (strInfo[i - ] != '\0'&&pos >= )
{
if (strInfo[i - ] != '-')
MAC[pos--] = strInfo[i - ];
else
MAC[pos--] = ':';
}
else
{
find_mac = true;
break;
}
}
} if (strstr(strInfo, "IPv4") != NULL) //获取IPv4地址
{
for (i = ;; i++)
{
if (strInfo[i] == ':')
break;
}
pos = i+;
for (i=;; i++,pos++)
{
if (strInfo[pos] != '\0'&&strInfo[pos] != '(')
IPv4[i] = strInfo[pos];
else
{
find_ipv4 = true;
break;
}
}
} }
if (find_mac && find_ipv4 && find_gateway)
break;
memset(strInfo, , );
}
}
如何通过C语言获取主机WLAN下的IPv4地址,MAC地址的更多相关文章
- 虚拟机下linux迁移造成MAC地址异常处理办法
虚拟机下linux迁移造成MAC地址异常处理办法 Linux无法启用网卡:Device eth0 has different MAC address than expected,ignoring解决 ...
- C语言实现Windows下获取IP和MAC地址。
C语言实现Windows下获取IP和MAC地址. #include <winsock2.h> #include <stdio.h> #include <stdlib.h& ...
- Linux下修改网卡的mac地址
方法1: # ifconfig ethX down # ifconfig ethX hw ether NEW_MAC_ADDR # ifconfig ethX up 但是这样重启后就失效了,需要再敲一 ...
- 嵌入式 Linux下修改MAC地址
Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth ...
- 通过mac地址确认二层交换机某个端口下接的终端设备IP
正常来说,二层交换机主要是通过mac地址进行通信的,这就导致我们无法直接通过arp表来确认交换机端口下终端设备的IP: 但我们仍然能通过查找二层交换机端口下学习到的mac地址,然后通过对照三层核心交换 ...
- VMware虚拟机在仅主机模式下的网卡无法动态获取IP
自己在VMware虚拟机中开启一台主机的时候,发现比以往的开机速度慢了好多,起初不以为然,直到用Xshell通过ssh远程连接eth1的ip地址才发现连接失败(这个ip是之前eth1正常的时候获取的i ...
- Linux系统下用C语言获取MAC地址
最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下.如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址 ...
- 查看局域网内所有的主机名、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 ...
- Windows下查看局域网内某台计算机的MAC地址
我们知道在局域网中,在Windows下,查看局域网内其他主机的ip和对应mac地址的命令是: arp -a 这样可以看到ip和mac地址的对应关系,还是比较方便的 但是有些时候使用arp命令并不能列出 ...
随机推荐
- java 根据传入的时间获取当前月的第一天的0点0分0秒和最后一天的23点59分59秒
/** * 获取指定日期所在月份开始的时间 * lkeji * @return */ public static String getMonthBegin(String specifiedDay) { ...
- 非极大抑制睔PYTHON实现
非极大抑制(Non-maximum suppression)python代码实现原创Butertfly 发布于2018-11-20 18:48:57 阅读数 293 收藏展开定位一个物体,最后算法就找 ...
- ETC系列产品非接触式读卡器方案:SI522
随着科技的不断发展,出行上高速这是非常寻常的事.但是在很多节假日高峰时期,在高速路口塞车缴费给很多车主造成很大的烦心.为了解决这一系列的问题,科技发明了ETC这种便捷式缴费技术,让车主们顺畅通过高速路 ...
- AndroidStudio3.0打开Android Device Monitor
相信很多更新了AndroidStudio3.0的小伙伴会发现无法在工具栏的的Tools->Android->device monitor,打开DeviceMonitor. 今天偶然看到 G ...
- 吴裕雄--天生自然java开发常用类库学习笔记:正则表达式
public class RegexDemo01{ public static void main(String args[]){ String str = "1234567890" ...
- created a ThreadLocal with key of type [oracle.jdbc.driver.AutoKeyInfo$1]
环境: spring4.3, mybatis3.5.2, ojdbc8_8c(oracle 18c jdbc) 调试状态下退出时,提示: 严重 [main] org.apache.catalina.l ...
- 剑指offer自学系列(五)
题目描述:请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...
- GNS3 模拟icmp端口不可达
R1 : conf t int f0/0 no shutdown ip add 192.168.1.1 255.255.255.0 no ip routing end R2 f0/0: conf t ...
- 文本编辑器vim/vi——模式切换及输入模式
vim一共有三种模式:命令模式.输入模式.末行模式 要从命令模式切换到输入模式:a,i,o a——append 属于在后面追加内容:i——insert 属于插入,在前面插入内容:o——other 属于 ...
- windows下移植别人配置好的python环境
一般来说,我们在windows下配置python环境的时候可能会比较推荐用anaconda,那么有一个比较方便的anaconda环境移植方法,也就是说,如果我已经在windows上安装好了anacon ...