网络socket

2019-04-06  本文已影响0人  ustclcl
思维导图.jpg
#include <sys/types.h>                                         
#include <sys/socket.h>                                        
#include <netdb.h>                                             
#include <arpa/inet.h>                                         
#include <stdio.h>                                             
#include <stdlib.h>                                            
#define MAXLINE 1024                                           
                                                               
                                                               
int main(int argc, char **argv)                                
{                                                              
    struct addrinfo *p,*listp, hints;                          
    char buf[MAXLINE];                                         
    int rc, flags;                                             
                                                               
    if(argc != 2){                                             
        fprintf(stderr,"usage: %s <domain niane>\n", argv[0]); 
        exit(0);                                               
    }                                                          
                                                               
                                                               
    //Get a list of addrinfo records                           
    memset(&hints,0,sizeof(struct addrinfo));                  
    hints.ai_family = AF_INET;                                 
    hints.ai_socktype = SOCK_STREAM;                           
    if((rc=getaddrinfo(argv[1],NULL,&hints,&listp))!=0){       
    //Get a list of addrinfo records                                       
    memset(&hints,0,sizeof(struct addrinfo));                              
    hints.ai_family = AF_INET;                                             
    hints.ai_socktype = SOCK_STREAM;                                       
    if((rc=getaddrinfo(argv[1],NULL,&hints,&listp))!=0){                   
        fprintf(stderr, "getaddrinfo error: %s\n",gai_strerror(rc));       
        exit(1);                                                           
    }                                                                      
                                                                           
    // Walk the list and display each IP address                           
    flags = NI_NUMERICHOST;                                                
    for(p=listp;p;p=p->ai_next){                                           
        getnameinfo(p->ai_addr,p->ai_addrlen, buf, MAXLINE,NULL,0,flags);  
        printf("%s\n",buf);                                                
    }                                                                      
    freeaddrinfo(listp);                                                   
    exit(0);                                                               
}           
[root@f3c6f9f95723 inet]# ./hostinfo www.baidu.com
14.215.177.38
14.215.177.39
[root@f3c6f9f95723 inet]# ./hostinfo www.ustc.edu.cn
218.22.21.21
上一篇下一篇

猜你喜欢

热点阅读