linux探测网线
来源:互联网 发布:网络名誉侵权案例分析 编辑:程序博客网 时间:2024/05/16 09:18
Shell查看网线插拔状态:
使用ifconfig命令,如果含有“RUNNING”,说明网线接入,否则就没有。
例:
ifconfig
ifconfig eth0
ifconfig eth0|grep "RUNNING"
================================================================================#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/if.h>
#include <string.h>
#include <stdio.h>
int net_detect(char* net_name)
{
int skfd = 0;
struct ifreq ifr;
struct sockaddr_in *pAddr = NULL;
skfd = socket(AF_INET, SOCK_DGRAM, 0);
if(skfd < 0)
{
printf("%s:%d Open socket error!\n", __FILE__, __LINE__);
return -1;
}
strcpy(ifr.ifr_name, net_name);
if(ioctl(skfd, SIOCGIFFLAGS, &ifr) <0 )
{
printf("%s:%d IOCTL error!\n", __FILE__, __LINE__);
printf("Maybe ethernet inferface %s is not valid!", ifr.ifr_name);
close(skfd);
return -1;
}
if(ifr.ifr_flags & IFF_RUNNING)
{
printf("%s is running :)\n", ifr.ifr_name);
}
else
{
printf("%s is not running :(\n", ifr.ifr_name);
}
if(ioctl(skfd,SIOCGIFADDR,&ifr)<0)
{
printf("SIOCGIFADDR IOCTL error!\n");
close(skfd);
return -1;
}
pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
// printf("ip addr :[%s]\n", inet_ntoa(pAddr->sin_addr));
// printf("ipaddr :[%s]\n",inet_ntoa(((structsockaddr_in*)&(ifr.ifr_addr))->sin_addr));
if(ioctl(skfd,SIOCGIFHWADDR,&ifr)<0)
{
printf("SIOCGIFHWADDR IOCTL error!\n");
close(skfd);
return -1;
}
printf("mac addr: %02x:%02x:%02x:%02x:%02x:%02x\n",
(unsigned char)ifr.ifr_hwaddr.sa_data[0],
(unsigned char)ifr.ifr_hwaddr.sa_data[1],
(unsigned char)ifr.ifr_hwaddr.sa_data[2],
(unsigned char)ifr.ifr_hwaddr.sa_data[3],
(unsigned char)ifr.ifr_hwaddr.sa_data[4],
(unsigned char)ifr.ifr_hwaddr.sa_data[5]);
close(skfd);
return 0;
}
int main()
{
net_detect("eth0");
return 0;
}
0 0
- linux探测网线
- linux物理内存探测
- linux物理内存探测
- linux局域网探测
- linux 检测网线拨出
- linux 网线是否插入
- 探测linux是否运行xen
- Linux下DOS攻击探测
- linux 内存探测和初始化
- linux检测网线插拔小程序
- linux检查网线是否插入
- linux 网线插拔检测
- linux检查网线是否插入
- 网线
- 网线
- 网线
- 网线
- 网线
- 设计模式九、十堂课
- setlayoutparams用法
- 吐槽Hibernate
- Android RecyclerView item没有match parent问题
- 浅析doc(word)格式文件内部结构
- linux探测网线
- 71.Xcode7新技巧
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- 用Android中的Chronometer实现HH:MM:SS的显示
- STM32工程模板简单套用教程(Keil MDK)
- Android系统手机为什么卡?
- 虚拟Python环境——virtualenv
- 创建主键时报错:ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it mus
- jar4