linux 下獲取當前網路連線狀態的兩種方法

2021-06-11 21:14:11 字數 1226 閱讀 9045

#include #include #include #include #include #include #include #include #define ethtool_glink        0x0000000a /* get link status (ethtool_value) */

typedef enum inte***ce_status_t;

typedef signed int u32;

/* for passing single values */

struct ethtool_value

;inte***ce_status_t inte***ce_detect_beat_ethtool(int fd, char *iface)

return edata.data ? ifstatus_up : ifstatus_down;

}int main (int argc, char *argv)

; char hw_name[10] = ;

char *token = null;

/* 獲取網絡卡名稱 */

if ((fp = fopen("/proc/net/dev", "r")) != null)}}

fclose(fp);

//方法一:檢視乙個檔案檔案,相對來說比較簡單

#if 1

char carrier_path[512] = ;

memset(buf, 0, sizeof(buf));

snprintf(carrier_path, sizeof(carrier_path), "/sys/class/net/%s/carrier", hw_name);

if ((fp = fopen(carrier_path, "r")) != null)

else}}

else

fclose(fp);

#endif

//方法二:用函式吧!有點複雜,但是也是一種有效的辦法

#if 1

int fd;

if((fd = socket(af_inet, sock_stream, 0)) == -1)

status = inte***ce_detect_beat_ethtool(fd, hw_name);

close(fd);

#endif

switch (status)

return 0;

}

獲取當前電腦全部網路連線名字

近期由於專案有須要獲取本機的全部存在的網路連線名稱,在網上也找了資料,有好幾種方法,只是就僅僅有一種是可以達到我想要的要求 寫下來給大家參考下 第一種方法 遍歷登錄檔來獲取 1 void fastcall mygetlanadaptername char szlanadaptername 2 60,...

VC獲取當前電腦所有網路連線名字

最近因為專案有需要獲取本機的所有存在的網路連線名稱,在網上也找了資料,有好幾種方法,不過就只有一種是能夠達到我想要的要求 寫下來給大家參考下 第一種方法 遍歷登錄檔來獲取 void fastcall mygetlanadaptername char szlanadaptername 0,key re...

linux網路連線

下面假設區域網的路由器內網ip是192.168.0.1 ifconfig ens33 192.168.0.211其中 ens33 代表網絡卡名稱,你的電腦上很可能是 eth0,那就使用下面的命令 ifconfig eth0 192.168.0.211 檢視ip位址 route add default...