linux C語言獲取網路介面的一些資訊

2021-10-07 09:28:08 字數 1552 閱讀 7699

1. 獲得網路介面名稱

2.獲取網路介面配置引數

3.獲得mtu和mac

4.獲取網絡卡序號

5.獲取傳送佇列長度

6.獲取網路介面ip位址

7.獲取網路廣播位址

8.查詢目的ip位址

9.查詢子網掩碼

下面是直接在linux系統中可執行的**

/*

*網路介面的獲取

*/#include#include#include#include#include#include#include#include#include#include#include#includeint main(int argc , char *ar**)

/*獲得網路介面名稱*/

struct ifreq ifr;

ifr.ifr_ifindex = 4; /*獲取第四個(網絡卡序號為4)網路介面名稱*/

err = ioctl(s , siocgifname , &ifr);

if(err)else

/*獲取網路介面配置引數*/

memcpy(ifr.ifr_name , "eno1" , strlen("eno1") + 1);

err = ioctl(s , siocgifflags , &ifr);

if(!err)

/*獲得mtu和mac*/

err = ioctl(s , siocgifmtu , &ifr);

if(!err)

err = ioctl(s , siocgifhwaddr , &ifr);

if(!err)

/*獲取網絡卡序號*/

err = ioctl(s , siocgifindex , &ifr);

if(!err)

/*獲取傳送佇列長度*/

err = ioctl(s , siocgiftxqlen , &ifr);

if(!err)

/*獲取網路介面ip位址*/

struct sockaddr_in *sin = (struct sockaddr_in*)&ifr.ifr_addr; //方便操作設定指向sockaddr_in的指標

char ip[16]; //儲存ip位址字串

memset(ip , 0 , 16);

memcpy(ifr.ifr_name , "eno1" , strlen("eno1") + 1);

err = ioctl(s , siocgifaddr , &ifr);

if(!err)

/*獲取網路廣播位址*/

err = ioctl(s , siocgifbrdaddr , &ifr);

if(!err)

/*查詢目的ip位址*/

err = ioctl(s , siocgifdstaddr , &ifr);

if(!err)

/*查詢子網掩碼*/

err = ioctl(s , siocgifnetmask , &ifr);

if(!err)

return 0;

}

linux c語言獲取系統時間

gmtime 取得目前時間和日期 獲得相關函式 time,asctime,ctime,localtime 表頭檔案 include 定義函式 struct tm gmtime const time t timep 函式說明 gmtime 將引數timep 所指的time t 結構中的資訊 轉換成真實...

用滑鼠獲取介面的座標

方法一 響應滑鼠右鍵訊息 wm rbuttondown 新增 cstring str str.format 座標 x d,y d point.x,point.y afxmessagebox str 右擊滑鼠即出現座標。方法二 在onmousemove訊息相應函式中 響應訊息wm mousemove ...

C winform介面的語言切換

if file.exists xmlpath 不存在xml檔案,建立檔案並寫入根節點 xmldocument xmldoc new xmldocument xmldoc.load xmlpath xmlnode xmlnode xmldoc.getelementbyid form.name if x...