linux中网络怎么检查,如何在Linux中检查以太网?
要检查链接是否已启动,请尝试以下操作.它没有root权限.
#include // printf
#include // strncpy
//#include // AF_INET
#include // SIOCGIFFLAGS
#include // errno
#include // IPPROTO_IP
#include // IFF_*, ifreq
#define ERROR(fmt, ...) do { printf(fmt, __VA_ARGS__); return -1; } while(0)
int CheckLink(char *ifname) {
int state = -1;
int socId = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
if (socId < 0) ERROR("Socket failed. Errno = %d\n", errno);
struct ifreq if_req;
(void) strncpy(if_req.ifr_name, ifname, sizeof(if_req.ifr_name));
int rv = ioctl(socId, SIOCGIFFLAGS, &if_req);
close(socId);
if ( rv == -1) ERROR("Ioctl failed. Errno = %d\n", errno);
return (if_req.ifr_flags & IFF_UP) && (if_req.ifr_flags & IFF_RUNNING);
}
int main() {
printf("%d\n", CheckLink("eth0"));
}
如果设置了IFF_UP,则表示接口已启动(请参阅ifup).如果设置了IFF_RUNNING,则接口已插入.
我也尝试使用ethtool ioctl调用,但是当gid不是root时它失败了.但只是为了日志:
...
#include // __u32
#include // ETHTOOL_GLINK
#include // SIOCETHTOOL
...
int CheckLink(char *ifname) {
...
struct ifreq if_req;
(void) strncpy( if_req.ifr_name, ifname, sizeof(if_req.ifr_name) );
struct ethtool_value edata;
edata.cmd = ETHTOOL_GLINK;
if_req.ifr_data = (char*) &edata;
int rv = ioctl(socId, SIOCETHTOOL, &if_req);
...
return !!edata.data;
}
linux中网络怎么检查,如何在Linux中检查以太网?相关推荐
- linux建立文件的符号链接,如何在Linux中创建符号链接[完整指南]
Linux中的符号链接是什么,为什么使用它? 符号链接(也称为符号链接或软链接)是一种特殊类型的文件,它只是指向另一个文件或目录,就像Windows中的快捷方式一样,创建符号链接就像为实际文件创建别名 ...
- 检测linux服务器的使用情况,如何在Linux服务器中检查内存使用情况
我们在排除服务器系统或应用程序速度减慢或行为不正常的问题时,首先要检查的是系统内存使用情况. 本文介绍了如何在Linux系统服务器中使用几个不同的命令来检查RAM的使用情况. 1.free命令 fre ...
- linux 怎么设置静态ip,如何在Linux中设置静态IP地址和配置网络
如果您是Linux系统管理员,那么当您需要在系统上配置网络时,就会出现时间. 与可以使用动态IP地址的台式机不同,在服务器基础架构上,您需要设置静态IP地址(至少在大多数情况下).IP地址 :192. ...
- linux如何配置网络设置_如何在Linux中配置网络
linux如何配置网络设置 将Linux计算机连接到网络非常简单,除非不是这样. 在本文中,我讨论了基于Red Hat的Linux发行版的主要网络配置文件,并介绍了两个网络启动服务:古老的网络启动和有 ...
- linux 更改ssh端口_如何在Linux中更改SSH端口-简易指南
linux 更改ssh端口 The default port on SSH is 22. But for security reasons, it's a good idea to change SS ...
- linux终端如何连接wifi,如何在 Linux 终端中连接使用 WiFi?
导读 在本教程中,你将学习如何在 Ubuntu 中从终端连接到无线网络.如果你在使用 Ubuntu 服务器时,无法访问常规的桌面环境,这将对你非常有帮助. 我的家用电脑主要使用桌面 .我也有多台 Li ...
- linux命令查硬盘wwn,如何在Linux中查找HBA卡的WWN,WWNN和WWPN号
在Linux / Unix操作系统中,有几种方法/命令来确定光纤通道(FC)HBA的WWN及其详细信息. 什么是SAN? 大多数IT行业使用SAN(存储区域网络)和fas I/O来获得更高的性能. S ...
- linux c ip数据包,如何在Linux上的C / C ++中使用ipv6 udp套接字进行多播?
(英语不是我的母语,不用担心某些句子是否很奇怪:). 我正在开发 PONG游戏, 并且通过创建一些类来帮助我管理窗口,事件-和 网络, 因为我在游戏中添加了 LAN功能 ,但是当前您必须输入您想与之联 ...
- linux python开发环境_如何在Linux系统中搭建Python编程环境
1 在大多数的Linux系统中,基本上都默认安装了Python,也就是说,在Linux的系统中基本上是不需要安装什么软件,就可以使用Python. 下面以ubuntu操作系统为例,看看如何在Linux ...
- linux命令行的操作符,如何在Linux命令行中进行基本的数学运算
原标题:如何在Linux命令行中进行基本的数学运算 Linux bash或命令行允许您执行基本和复杂的算术和布尔运算.像expr,jot,bc和factor等命令可以帮助您找到复杂问题的最优数学解决方 ...
最新文章
- 微软沈向洋:写给AI新潮流——人工智能创作的五点建议
- 大数据领域75个核心术语讲解!
- C - Heavy Transportation POJ - 1797
- 网络推广产品中网站的标题如何设置更利于SEO?
- 删除联想OEM分区的方法 推荐!
- 滴滴算法大赛算法解决过程 - 方案设计
- QT的QMediaPlaylist类的使用
- mysql报错排查总结
- 80486微型计算机的字长,80486,80586等是什么样的电脑?
- 黑马程序员——程序结构
- kingbase自带的驱动在哪_为什么别人家的广告语都能自带BUG?
- 8.Springcloud的Feign嵌入Ribbon实现接口式调用(改变restTemplate和Ribbon的调用方式)...
- 火星开发的价值_发现“火星”岩石密度比预想更低,火星探测开发的“九大价值”...
- socket发送http请求
- 快手did did_gt edid的注册过程
- javasript |仿百度换肤效果
- ssm搭建整合,这一篇你直接拷走就是一个搭好的框架,前后端可分离,可不分离
- 应届生如何成功进入产品经理岗位
- 微信小程序iconfont不显示解决
- activity组任务使用