導航:首頁 > 編程語言 > c語言源代碼網卡

c語言源代碼網卡

發布時間:2023-08-23 23:58:38

⑴ 怎麼用C語言獲取Linux系統的網卡IP地址

#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>

//獲取地址
//返回IP地址字元串
intgetlocalip(char*outip)
{
inti=0;
intsockfd;
structifconfifconf;
charbuf=(char)malloc(512);
structifreq*ifreq;
char*ip;

//初始化ifconf
ifconf.ifc_len=512;
ifconf.ifc_buf=buf;

if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0)
{
return-1;
}
ioctl(sockfd,SIOCGIFCONF,&ifconf);//獲取所有介面信息
close(sockfd);
//接下來一個一個的獲取IP地址
ifreq=(structifreq*)buf;
i=ifconf.ifc_len/sizeof(structifreq);
char*pos=outip;
intcount;
for(count=0;(count<5&&i>0);i--)
{
ip=inet_ntoa(((structsockaddr_in*)&(ifreq->ifr_addr))->sin_addr);

if(strncmp(ip,"127.0.0.1",3)==0)//排除127.x.x.x,繼續下一個
{
ifreq++;
continue;
}else
{
printf("%s ",ip);
strcpy(pos,ip);
intlen=strlen(ip);
pos=' ';
pos+=len+1;
count++;
ifreq++;
}
}
free(buf);
return0;
}
//——————————-函數的調用方式————————————-
intmain(intargc,char**argv)
{
charip={'*'};

if(getlocalip(ip)==0)
{
printf("本機IP地址是:%s ",ip);
}
else
{
printf("無法獲取本機IP地址");
}
return0;
}

閱讀全文

與c語言源代碼網卡相關的資料

熱點內容
為什麼問卷星有的數據只有99 瀏覽:684
如何調數據儲存模式 瀏覽:609
超凡蜘蛛俠2蘋果版免費 瀏覽:110
蘋果6s放大器怎麼設置密碼 瀏覽:626
windows7怎麼沒有無線網路 瀏覽:917
5s蘋果手機錄像只有沙沙響的聲音 瀏覽:879
多張圖紙怎樣列印到一個pdf文件里 瀏覽:347
安裝cad2020出現無法定位inf文件 瀏覽:728
百度競價數據如何分析 瀏覽:965
ps文件發送第三方列印 瀏覽:547
linux命令界面顯示文件名 瀏覽:930
超級錄屏視頻在文件夾里不能播放 瀏覽:549
最簡單的編程軟體有哪些 瀏覽:14
博客簽到系統如何設計資料庫 瀏覽:639
論文怎麼設置目錄word 瀏覽:609
廣電網路dlna是什麼意思 瀏覽:12
js變數加下劃線 瀏覽:18
app開發工作是吃青春飯嗎 瀏覽:117
蘋果手機國家查詢 瀏覽:765
蘋果6照片刪了怎麼找回 瀏覽:399

友情鏈接