• 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;}

    
    



  • 相关阅读:
    字符串切片
    格式化输出
    原生链+对象冒充组合继承模式
    对象冒充继承和原生链实现继承的方法和问题
    xlwt使用
    xlrd使用
    pip安装插件库
    第一天入驻博客园
    2-2ARP概念
    1-14常用的应用层协议及应用
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7210611.html
Copyright © 2020-2023  润新知