zoukankan      html  css  js  c++  java
  • linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换

    用域名获取IP地址或者用IP获取域名
    #include<stdio.h>
    #include<sys/socket.h>
    #include<netdb.h>
    int main(int argc,char **aggv)
    {
            struct hostent *host;
            char hostname[]="www.163.com";
            char hostname2[]="www.baidu.com";
            struct in_addr in;
            struct sockaddr_in addr_in;
            int h_errno;
            char addr[]="202.108.249.216";
    
            if((host=gethostbyname(hostname))!=NULL)
                    {
                            memcpy(&addr_in.sin_addr.s_addr,host->h_addr,4);
                            in.s_addr=addr_in.sin_addr.s_addr;
                            printf("Domain name : %s 
    ",hostname);
                            printf("IP length is: %d 
    ",host->h_length);
                            printf("Type : %d 
    ",host->h_addrtype);
                            printf("IP : %s 
    ",inet_ntoa(in));
    
                    }
    
            if(((host=gethostbyaddr(addr,sizeof(addr),AF_INET)))!=(struct hostnet *)NULL)
            {
                    memcpy(&addr_in.sin_addr.s_addr,host->h_addr,4);
                            in.s_addr=addr_in.sin_addr.s_addr;
                            printf("
    ---------------------
    ");
                            printf("Domain name : %s 
    ",hostname);
                            printf("IP length is: %d 
    ",host->h_length);
                            printf("Type : %d 
    ",host->h_addrtype);
                            printf("IP : %s 
    ",inet_ntoa(in));
            }
            return 0;
    }




    #include<stdio.h>
    #include<netdb.h>
    #include<arpa/inet.h>
    int main()
    {
            int i ;
            for(i=0;i<6;i++)
            printf("%d  %s 
    ",i,hstrerror(i));//捕获错误编号
    
            char cp[]="192.168.0.84";
            printf("%ld
    ",inet_addr(cp));
    //将网络地址转换成整型
    struct in_addr ip; ip.s_addr=16885952; printf("%s ",inet_ntoa(ip));
    //将整型转换成网络地址
    long local; int port; local=123456; port=1024; printf("net: %d ",htonl(local));//主机字符顺序与网络字节顺序的转换 printf("net: %d ",htonl(port)); printf("local: %d ",ntohl(htonl(local))); printf("local: %d ",ntohl(htonl(port))); return 0;}

    
    



  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7210611.html
Copyright © 2011-2022 走看看