码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2017-07-20 13:31:14      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:code   转换   post   地址   log   clu   --   emc   网络字节顺序   

用域名获取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 \n",hostname);
                        printf("IP length is: %d \n",host->h_length);
                        printf("Type : %d \n",host->h_addrtype);
                        printf("IP : %s \n",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("\n---------------------\n");
                        printf("Domain name : %s \n",hostname);
                        printf("IP length is: %d \n",host->h_length);
                        printf("Type : %d \n",host->h_addrtype);
                        printf("IP : %s \n",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 \n",i,hstrerror(i));//捕获错误编号

        char cp[]="192.168.0.84";
        printf("%ld\n",inet_addr(cp));
//将网络地址转换成整型
struct in_addr ip; ip.s_addr=16885952; printf("%s\n",inet_ntoa(ip));
//将整型转换成网络地址
long local; int port; local=123456; port=1024; printf("net: %d\n",htonl(local));//主机字符顺序与网络字节顺序的转换 printf("net: %d\n",htonl(port)); printf("local: %d\n",ntohl(htonl(local))); printf("local: %d\n",ntohl(htonl(port))); return 0;}






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

标签:code   转换   post   地址   log   clu   --   emc   网络字节顺序   

原文地址:http://www.cnblogs.com/slgkaifa/p/7210611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!