linux 网线插拔检测
来源:互联网 发布:科沃尔数据 编辑:程序博客网 时间:2024/06/02 12:13
检测网线是否连接和wifi是否开启:
#include <net/if.h>
#include <net/if_arp.h>#include <sys/ioctl.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
//如果网口已插上网线,返回0,否则返回-1.
int check_nic(char *nic)
{
struct ifreq ifr;
int skfd = socket(AF_INET, SOCK_DGRAM, 0);
strcpy(ifr.ifr_name, nic);
if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0)
{
return -1;
}
if(ifr.ifr_flags & IFF_RUNNING)
return 0; // 网卡已插上网线
else return -1;
}
int GetWifiStat(void)
{
char buffer[BUFSIZ];
FILE *read_fp;
int chars_read;
int ret;
memset( buffer, 0, BUFSIZ );
read_fp = popen("ifconfig uap0 | grep RUNNING", "r");
if ( read_fp != NULL )
{
chars_read = fread(buffer, sizeof(char), BUFSIZ-1, read_fp);
if (chars_read > 0)
{
ret = 0;
}
else
{
ret = -1;
}
pclose(read_fp);
}
else
{
ret = -1;
}
return ret;
}
void main(void)
{
int lanConnectFlag;
int wlanConnectFlag;
while(1)
{
lanConnectFlag = check_nic("eth0");
wlanConnectFlag = GetWifiStat();
if(!lanConnectFlag && !wlanConnectFlag)//网线连接上、无线ap开启
{
printf("connect\n");
}
else if(lanConnectFlag && wlanConnectFlag)//网线断开,无线ap不开启
{
printf("disconnect\n");
}
}
}
0 0
- linux 网线插拔检测
- linux下检测网线插拔(二)
- linux下检测网线插拔(三)
- linux检测网线插拔状态
- linux检测网线插拔状态
- linux检测网线插拔状态
- linux检测网线插拔状态
- 检测网线插拔状态
- linux下如何检测网线是否插拔(一)
- linux中的网线插拔事件
- linux应用层监控网线插拔状态的实现
- linux获取网线插拔状态的实现
- linux获取网线插拔状态的实现
- linux获取网线插拔状态的实现
- linux获取网线插拔状态的实现
- 检查网线的插拔
- 检测手机耳机插拔
- Android TV判断网线拔插状态
- Java父类、子类、静态成员和普通成员初始化的顺序
- Oracle建立表空间和用户
- Gate架构
- git 笔记
- Codeforces 487b Strip, dp + RMQ(经典)
- linux 网线插拔检测
- <PY>利用7z暴力破解压缩文件密码
- Gson:比较两个JSON字符串是否完全相等
- 开发者必知的KPI概念和用法
- 在一个文件中有 10G 个整数,乱序排列,要求找出中位数(内存限制为2G)
- 在Windows Server2003中运行3D游戏
- 强制去掉警告
- 史上最详细的Android Studio系列教程二--基本设置与运行
- VC:正在驱动科技与人类生活的十大趋势