linux c獲取IP地址

nbd2 10年前發布 | 2K 次閱讀 C/C++

#include <stdio.h>

include <sys/socket.h>

include <sys/ioctl.h>

include <netinet/in.h>

include <net/if.h>

include <string.h>

include <arpa/inet.h>

int main(int argc, char **argv) { int sockfd; struct ifreq ifr;

char *ifname="eth0";
strncpy(ifr.ifr_name, ifname, IFNAMSIZ-1);

sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(ioctl(sockfd, SIOCGIFADDR, &ifr) == -1)
{
    printf("Error\n");
    return;
}

struct sockaddr_in *myaddr;
myaddr = (struct sockaddr_in*)&(ifr.ifr_addr);
printf("IP: %s\n", inet_ntoa(myaddr->sin_addr));

}</pre>

 本文由用戶 nbd2 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!