LINUX c++ 遍歷網絡卡列表
直接扔程式碼:
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <net/if.h> #include <netdb.h> #include <arpa/inet.h> #include <sys/ioctl.h> using namespace std; void show_all_if() { int fdSock = 0; struct ifconf ifMyConf; struct ifreq ifMyReq; char szBuf[20480] = {0}; char * ip; ifMyConf.ifc_len = 2048; ifMyConf.ifc_buf = szBuf; if((fdSock = socket (AF_INET, SOCK_DGRAM, 0)) < 0 ) { cout << "socket error" <<endl; return; } if(ioctl (fdSock, SIOCGIFCONF, &ifMyConf)) { close(fdSock); cout << "ioctl error \n"<<endl; return; } ifreq *it = ifMyConf.ifc_req; const struct ifreq * const end = it + (ifMyConf.ifc_len / sizeof(struct ifreq)); for(;it != end; ++it) { strcpy(ifMyReq.ifr_name, it->ifr_name); cout<< ifMyReq.ifr_name <<endl; if(ioctl(fdSock, SIOCGIFADDR, &ifMyReq) == 0) { string strAddr; struct sockaddr_in *sin; sin = (struct sockaddr_in*) &ifMyReq.ifr_addr; strAddr = (const char *) inet_ntoa(sin->sin_addr); cout << "ip addr : "<<strAddr.c_str()<<endl; } else { cout << "get mac info error \n"<<endl; } if(ioctl(fdSock, SIOCGIFNETMASK, &ifMyReq) == 0) { string strMask; struct sockaddr_in *sin; sin = (struct sockaddr_in*) &ifMyReq.ifr_netmask; strMask = (const char *) inet_ntoa(sin->sin_addr); cout << "net mask : "<<strMask.c_str()<<endl; } else { cout << "get mask info error \n"<<endl; } if(strstr(ifMyReq.ifr_name, "ppp")) { if((ioctl(fdSock, SIOCGIFDSTADDR, &ifMyReq)) == 0) { string strAddr; struct sockaddr_in *sin; sin = (struct sockaddr_in*) &ifMyReq.ifr_dstaddr; strAddr = (const char *) inet_ntoa(sin->sin_addr); cout << "P-T-P : "<<strAddr.c_str()<<endl; } else { cout << "get P-T-P info error \n"<<endl; } } } close(fdSock); } int main () { show_all_if(); system("read"); }
相關推薦
LINUX c++ 遍歷網絡卡列表
直接扔程式碼: #include <iostream> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h>
linux C語言獲取網絡卡對應IP地址
int get_gw_ip(char *eth, char *ipaddr){ int sock_fd; struct sockaddr_in my_addr; struct ifreq ifr; /**//* Get socket file descriptor */
C# 多個網絡卡資訊列表
private static void ShowAdapterInfo() { NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
linux下C語言獲取網絡卡MAC地址
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/socket.h&g
linux c++模擬簡易網絡爬蟲
soc argv 爬蟲 and gethostby ddr rec cep use /* * To change this license header, choose License Headers in Project Properties. * To change t
linux c 遍歷目錄及文件
cup close logs sed mode 文件 void struct readdir #include <dirent.h>void recovery_backend() { DIR * pdir ; struct dirent *
Linux移除虛擬網絡卡
今天上大資料實踐課時,使用學校提供的雲主機平臺建立了幾臺vps,但是安全組配置好之後發現無法用ssh無法登入,ping也不通,提示網路無法到達。 但是拿別人的電腦試了下能順利使用ssh連線。 有人說是我電腦防火牆的問題,對於這個說法我是萬萬不信的。 反覆觀察後發現: vps的地址是172.19.241.45
Linux中USB無線網絡卡實現AP模式(hostapd交叉編譯環境下)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
LINUX核心升級 - 更新網絡卡驅動
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
linux部署二:網絡卡配置和Yum源的替換
一,初次登陸: 1.登陸(用root登陸)(1).賬戶名root(2).密碼 。。。。2.工作介面切換A.Ctrl + alt + F1 : 圖形化介面B.Ctrl + alt + F2----F6 : 5個命令列介面3.ls 命令:瀏覽目錄 cd 命令:切換目錄 Ctrl +l 或 cle
VM虛擬機器中linux centOS 聯網單網絡卡配置教程
VM虛擬機器提供了三種聯網模式:主機模式,nat模式,橋接模式 1.主機模式 真實環境和虛擬環境是隔離開的;在這種模式下,所有虛擬系統可惜相互通訊,但是虛擬系統和真實網路是被隔開的,但主機可以上網。 2.
Linux Namespace Veth虛擬網絡卡
Linux Namespace Network Namespace 建立networ
複製linux虛擬機器後網絡卡不能用的解決方法
複製Linux虛擬機器,發現原eth0網絡卡無法使用。原來只有eth0網絡卡,卻新增了一個eth1網絡卡,IP地址配置在eth0上。 原因: VM複製後,MAC地址變動,Linux認為新網絡卡,那原網絡卡不可用了。 1、編輯udev下的70-persist
【Linux】萬兆網絡卡82599驅動安裝
在Debian系的Linux中編譯並安裝ixgbe驅動的教程 遇到bug 實測可以使用的: failed to
Linux基礎——sar 檢視網絡卡流量 網路io
2017年03月23日 13:21:07 Citizen_Wang 閱讀數:17993 版權宣告:本文為 Cityzen Wang 原創文章,歡迎轉載!轉載請註明出處:http://blog.csdn.net/cityzenoldwang https://b
C#之獲取網絡卡IP地址
有時候不想讀取配置檔案來進行網路監聽,預設把本級所有IP地址監聽一遍,這個時候就需要獲取本級所有IP地址。 如下: string name = Dns.GetHostName(); IPAddress[] ipadrlist = Dns.Get
linux配置bond雙網絡卡繫結
第一步:# vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BONDING_OPTS="mode=0 miimon=100"
linux如何新增新網絡卡並修改網絡卡配置檔案
如何給linux虛擬機器新增網絡卡,並給配置修改網絡卡資訊 環境:VMware Workstation 系統:Centos 步驟一:關機、新增網絡卡硬體: 1、網路介面卡 2、新增 3、選中網路介面卡 下一步 4、
VM linux虛擬機器新增網絡卡修改ip 並修改mac地址
修改ip 開啟終端 vi /etc/sysconfig/network-script/ifcfg-eth0; 具體是哪個可以到這個目錄地下檢視一下,我的是ifcfg-system-eth0. 開啟檔案後修改裡面的ip地址,IPADRR這一項是填寫ip地址的地方。 然後開啟拎一個檔案檢視我
Linux c : 遍歷並刪除指定目錄下的所有檔案
系統:ubuntu17.10 遍歷並刪除指定目錄下的所有檔案 #include <dirent.h> #include <stdio.h> #include <string.h> int main() { &