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

Posted slgkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 \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获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换的主要内容,如果未能解决你的问题,请参考以下文章

获取ip地址对应的mac地址,c/c++编程实现,linux下

如何绕过用CDN的域名 获取真实IP地址

域名解析和缓存

怎么用C语言获取Linux系统的网卡IP地址

linux网络配置和域名解析

php怎样通过IP获取应对的域名?