跳至內容
MasterDragon
使用者工具
登入
網站工具
搜尋
工具
顯示頁面
舊版
反向連結
最近更新
多媒體管理器
網站地圖
登入
>
最近更新
多媒體管理器
網站地圖
足跡:
program:c:linux編程獲取本機ip地址_sample
本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。
**顯示本機所有網卡的IP address, netmask, broadcast** <code c> #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> int main (int argc, const char * argv[]) { struct ifaddrs * ifAddrStruct=NULL; void * tmpAddrPtr=NULL; getifaddrs(&ifAddrStruct); while (ifAddrStruct!=NULL) { if (ifAddrStruct->ifa_addr->sa_family==AF_INET) { // check it is IP4 // is a valid IP4 Address tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr; char addressBuffer[INET_ADDRSTRLEN]; inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN); // Netmask tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_netmask)->sin_addr; char netmaskBuffer[INET_ADDRSTRLEN]; inet_ntop(AF_INET, tmpAddrPtr, netmaskBuffer, INET_ADDRSTRLEN); // Broadcast tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_broadaddr)->sin_addr; char broadaddrBuffer[INET_ADDRSTRLEN]; inet_ntop(AF_INET, tmpAddrPtr, broadaddrBuffer, INET_ADDRSTRLEN); printf("%s IP Address %s Netmask %s Broadcast %s\n", ifAddrStruct->ifa_name, addressBuffer, netmaskBuffer, broadaddrBuffer); } else if (ifAddrStruct->ifa_addr->sa_family==AF_INET6) { // check it is IP6 // is a valid IP6 Address tmpAddrPtr=&((struct sockaddr_in *)ifAddrStruct->ifa_addr)->sin_addr; char addressBuffer[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, tmpAddrPtr, addressBuffer, INET6_ADDRSTRLEN); printf("%s IP Address %s\n", ifAddrStruct->ifa_name, addressBuffer); } ifAddrStruct=ifAddrStruct->ifa_next; } return 0; } </code>
program/c/linux編程獲取本機ip地址_sample.txt
· 上一次變更: 2019/11/16 08:12 由
127.0.0.1
頁面工具
顯示頁面
舊版
反向連結
回到頁頂