精华内容
下载资源
问答
  • 获取指定域名IP地址

    千次阅读 2015-04-12 14:18:16
    #include "stdafx.h" #include #include #pragma comment(lib, "Ws2_32.lib") ... // 主机所有IP地址,该值是网络字节序,该参数是个二维数组,以NULL结束 };
    #include "stdafx.h"
    #include <stdio.h>
    #include <WinSock2.h>
    #pragma comment(lib, "Ws2_32.lib")
    #include <string.h>
    
    void ShowWebIP(const char *pszUrl)
    {
        WSADATA wsaData;
        WSAStartup(MAKEWORD(2,2), &wsaData);
        if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
        {
            printf("init socket failed");
            return;
        }
        struct hostent *pHost = gethostbyname(pszUrl);
        if (pHost == NULL)
        {
            WSACleanup();
            printf("pHost == NULL \n");
            return;
        }
        printf("主机名:%s \n", pHost->h_name);        // 主机正式名称
        int iIndex = 0;
        while(pHost->h_aliases[iIndex])
        {
            printf("别名:%s \n", pHost->h_aliases[iIndex]);    // 主机别名,可以有多个
            iIndex++;
        }
        printf("地址类型:%d \n", pHost->h_addrtype);  // 返回地址类型,通常是AF_INET、IPV4或者AF_INET6、IPV6
        printf("length:%d \n", pHost->h_length);       // 地址字节数,IPV4是4,IPV6是6
        iIndex = 0;
        while(pHost->h_addr_list[iIndex])
        {
            printf("ip:%s \n", inet_ntoa(*(struct in_addr*)pHost->h_addr_list[iIndex])); 
            iIndex++;
        }
        printf("\n");
        WSACleanup();
    }
    
    
    int main(int argc,char *argv[])
    {
        ShowWebIP("www.csdn.net");  // 注意不能带http://
        ShowWebIP("www.baidu.com");
        ShowWebIP("www.qq.com");
    
        getchar();
    	return 0;
    }




    关键点:

    struct hostent {
      char FAR *       h_name; // 主机正式名称
      char FAR * FAR * h_aliases; // 主机备用名称,可以有多个,该参数是个二维数组,以NULL结束
      short            h_addrtype; // 地址类型,通常是AF_INET、IPV4或者AF_INET6、IPV6
      short            h_length; // 每个主机地址字节数,IPV4是4,IPV6是6
      char FAR * FAR * h_addr_list; // 主机所有IP地址,该值是网络字节序,该参数是个二维数组,以NULL结束
    };







    展开全文
  • 批量获取域名IP地址

    千次阅读 2014-03-22 09:52:08
    解决办法有很多,这里是用脚本做的,虽然性能不好,但胜在简单。 1. 准备域名列表文件,每行一个域名 # cat dns.txt ...2. 获取IP域名的shell脚本 #cat getip.sh #!/bin/sh for line in `cat $1` do p


    解决办法有很多,这里是用脚本做的,虽然性能不好,但胜在简单。


    1. 准备域名列表文件,每行一个域名

    # cat dns.txt 
    www.baidu.com
    www.sina.com
    www.163.com
    www.qq.com

    2. 获取IP域名的shell脚本

    #cat getip.sh 
    #!/bin/sh
    
    for line in `cat $1`
    do
            python getip.py ${line}
    done

    3. 步骤2用到的python脚本

    # cat getip.py 
    #!/usr/bin/python
    
    import sys, socket
    
    try:
        result = socket.getaddrinfo(sys.argv[1], 'http', 0, 0, socket.SOL_TCP)
        counter = 0;
        print(sys.argv[1]), 
        for item in result:
            print " %s" % (item[4][0]), 
            counter += 1
    except:
        print 'resolve failed',


    展开全文
  • 获取指定域名IP地址

    千次阅读 2018-06-04 14:02:57
    获取指定域名IP地址所需函数:gethostbyname函数原型:struct hostent* gethostbyname(const char *name)参数:const char *name//主机名或域名返回值:函数执行成功会返回一个hostent结构体,其结构体原型如下:...

    获取指定域名的IP地址

    所需函数:gethostbyname

    函数原型:

    struct hostent* gethostbyname(const char *name)

    参数:const char *name  //主机名或域名

    返回值:函数执行成功会返回一个hostent结构体,其结构体原型如下:

    struct hostent
    
    {
    
    char *h_name;//主机正式名
    
    char ** h_aliases;//主机别名
    
    short h_addrtype;//主机地址类型一般为2表示是AF_INET
    
    short h_length;//地址长度,32位地址长度为4个字节
    
    char ** h_addr_list; //存储主机地址的数组。此处要注意的是该成员可以存储多个IP地址,即如其名称所言,地址列表。当获取到hostent结构指针后,要读取地址信息。应该使用
    
          强制转换为in_addr*(用来表示IV_4IP的TCP结构体)再使用。我刚开始使用的时候以为每个h_addr_list[i]就是一个地址列表的字符,结果得到的不是自己想要的。
    
    };

    函数执行失败会返回一个空指针,并且可以通过WSAGetLastError来获取错误码

    WSANOTINITIALISED 在应用这个API前,必须成功地调用WSAStartup()。
    
    WSAENTDOWN Windows Sockets实现检测到了网络子系统的错误。
    
    WSAHOST_NOT_FOUND 没有找到授权应答主机。
    
    WSATRY_AGAIN 没有找到非授权主机,或者SERVERFAIL。
    
    WSANO_RECOVERY 无法恢复的错误,FORMERR,REFUSED,NOTIMP。
    
    WSANO_DATA 有效的名字,但没有关于请求类型的数据记录。
    
    WSAEINPROGRESS 一个阻塞的Windows Sockets操作正在进行。
    
    WSAEINTR 阻塞调用被WSACancelBlockingCall()取消了.

    示例:

    #include <Winsock2.h>
    
    #pragma comment(lib,"WS2_32.lib")           //套接字库
    
    int main(){
    
    WSAData wsa;
    
    WSAStartup(MAKEWORD(2, 2)/*使用2.2的winsock版本库*/, &wsa);
    
    hostent *phst = gethostbyname("www.Google.com");//传递域名/主机名
    
    in_addr * iddr = (in_addr*)phst->h_addr;//h_addr = h_addr_list[0],获取地址列表第一个地址IP
    
    unsigned long IPUL = iddr->s_addr;//获取无符号的网络字节序,该符号通常以大端形式存储
    
    char *IP = inet_ntoa(*iddr);//将十进制的大端存储的网络字节讯转化为以.分割的字符IP_4地址,并以小端形式存储
    
    printf("%s", IP);//打印
    
    getchar();
    
    }
    
     

    运行结果:

    有的时候你会发现你能获取某个网站的IP地址时能获取到多个IP地址,就像h_addr_list这个成员变量一样,这里来说明一下,DNS服务器,DNS服务器是负责用于解析某个域名的IP的,它会把解析结果返回给浏览器,浏览器在通过解析结果,来进行TCP/IP的连接,那么DNS服务器是什么?

    DNS服务器是由ICANN(全球互联网域名与数字地址(IP)分配机构)维护的,后ICANN将亚太地区(亚洲大陆)的DNS服务器交给apnic维护,并且其它大陆的也分别交给不同的信息中心维护,美国是由ICANN维护的,但其资源是共享的,我们平常在一些域名供应商购买域名时,通过域名捆绑IP时供应商会将这些信息通过信息中心提供的结构解析到信息中心中!

    且域名也是有ICANN维护的,我们平常在注册域名都要查一下域名是否被注册,这些都是通过ICANN提供的接口查询的,并且不同国家也有不同的政策,比如万网需要备案,但其万网背后所使用的接口均为apnic提供的!

    并且可以通过域名供应商来设置DNS服务器的解析方式,有的时候一个域名可以拥有多个服务器,学网站制作的应该有了解,毕竟一个服务器是不能承载上千万的同时访问量的,其次考虑到线路方面的传递效率问题,很多大型网站会在不同地方设立不同的服务器,然后在域名供应商里把域名与多个服务器的独立IP绑定在一起,在设置一下解析模式即可!

    只需要在DNS域名解析里把同一个域名解析到不同的服务器IP上即可!

    这样在访问时DNS服务器会根据你当前的线路给你选择距离你最近的线路,这样线路传递数据的效率也有所提升,速度上也增加,解析只能通过地区不会精准到住所!

    浏览器在域名解析时会把当前调用接口来进行请求其底层是TCP/IP协议,这样的话你的IP还会被传递过去,DNS服务器就可以通过你的IP来确定你的位置!

    如何确定位置?

    答:

    根据IP号段,供应商在给你的互联网设备分配IP不是乱分配的,会根据你注册情况,提供的地址,来给你确定IP,比如123.26-155.26IP号段为上海市浦东新区,那么假如你的IP号段(IP地址前两个)在此范围内,那就可以确定地区了,随着人数的增多,有的时候会发现不在此范围内的号段也是某某地区的,是因为人数的增多,扩展出新的号段,不过这些我们是不需要关心的,因为这些是运营商自己后台会存储扩展好的!

     

    Gethostbyname函数内部其实调用的是netconn_gethostbyname函数,netconn_gethostbyname函数是lwip(基于TCP/IP的开源小型协议栈,是瑞典计算机科学院(SICS)Adam Dunkels开发的)下的一个DNS域名查询接口开发的,并且此接口只要有TCP/IP库,即可调用,无需操作系统支持,并且TCP/IP库是纯C开发的,没有操作系统限制,适合嵌入式!

     

    相关连接:网络通讯过程-互联网详解

    展开全文
  • Qt通过域名获取IP地址

    千次阅读 2018-08-08 11:52:10
    QHostInfo info = QHostInfo::fromName("www.baidu.com"); qDebug() &lt;&lt; info.addresses().first().toString();  
    QHostInfo info = QHostInfo::fromName("www.baidu.com");
    
    qDebug() << info.addresses().first().toString();
    
     
    展开全文
  • java网络编程-获取域名ip地址

    千次阅读 2014-09-08 10:28:57
    import java.net.InetAddress; import java.net.UnknownHostException; /* * 域名和ip地址获取 * Java中用InetAddress类获取域名ip地址. */ public class DNSAndIPAddress { public DNSAndIPAddress(){
  • Linux-C 根据域名获取IP地址 一、简述 记--根据域名获取对应的IP地址。 二、效果 三、代码 /* File:main.c * Desciption:Get ip address from domain name. * Author:Genven_Lian...
  • 获取域名IP地址

    千次阅读 2013-05-26 10:29:34
    //保存一个IP地址 struct sockaddr_in addr_in;// /* **struct sockaddr_in **{ ** unsigned short int sin_family;//通信的地址类型 ** uint16_t sin_port;//套接字使用的端口号 ** struct in_addr sin_addr...
  • 上篇文章通过Java自带的inetAddress类我们知道只能获取到单个ip地址, 这种方法是不适用与大多数情况的,因为大多数情况下我们的一个域名可能会映射到多个nginx主机ip 1.通过maven依赖jar包 <!--dns地址解析...
  • Java获取IP地址域名

    千次阅读 2016-10-11 22:50:38
    本实例实现获取IP地址域名的功能,能够获取本机的IP地址,机器名,以及远程服务器的IP地址。 关键技术: 获取IP地址域名的关键技术: ---通过java.net.InetAddress的getLocalHost静态方法可以获得本机的网络地址...
  • WINDOWS下C++通过域名获取IP地址

    千次阅读 2013-12-30 19:54:10
    前段时间有需要通过域名获取IP地址,Winsock API函数,总结如下: 注意 使用Socket的程序在使用Socket之前必须调用WSAStartup函数对winsock服务进行初始化。 函数解释 int WSAStartup ( WORD wVersionRequested, ...
  • 获取任意域名的所有 ip 地址

    千次阅读 2020-05-08 09:46:07
    获取任意域名的所有ip地址 1. windows + R 输入cmd打开命令行窗口; 2. 输入nslookup 可以看到你的默认服务器 ip 地址; 3. 输入你想要查询的域名,例如www.baidu.com,我们可以看到当前百度有两个ip地址; ...
  • C/C++ 根据域名获取IP地址

    千次阅读 2017-12-14 16:21:21
    今天看到一个实用的代码简单又好用,That’s a simple question...当然如果有遇到IP地址ping不ping得通的问题, ping的通不通,点我#include #pragma comment(lib,"Ws2_32.lib")BOOL GetRealIpByDomainName(char *szH
  • 获取本地 ip 地址,mac,通过域名获取对应的 ip, 是网络编程可能遇到的比较常见的操作了,所以总结如下(封装了3个函数), 直接上代码: #include #include #include #include #include #include #include ...
  • 通过 InetAddress Ping网络远程主机并获取域名对应的IP地址 import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; public class PingUtils { /** * 通过域名...
  • PHP获取域名域名IP的方法

    千次阅读 2019-05-10 10:38:29
    获取域名IP的方法可以使用内置的函数gethostbyname获取,例如: echogethostbyname("www.jbxue.com"); 以上则会直接输出域名所对应的的IP,当然各个地方测试的结果是不一样的,因为百度的服务器也不只有一台,我...
  • 用域名获取IP地址或者用IP获取域名 #include #include #include int main(int argc,char **aggv) { struct hostent *host; char hostname[]="www.163.com"; char hostname2[]="www.baidu.com"; s
  • 客户端中直接使用 IP 地址会有很大的弊端,一旦 IP 地址变化(IP 地址会经常变动),客户端软件就会出现错误。 而使用域名会方便很多,注册后的域名只要每年续费就永远属于自己...通过域名获取IP地址 域名仅仅是 I...
  • 在利用Nginx作为反向代理服务器的时候,出现一个问题,就是在Tomcat中的web项目获取当前访问域名地址的时候,无法获取到真实的域名IP地址,进过一系列摸索,最终找到解决办法。 之前的Nginx配置: server { ...
  • -----解析ip 地址 SQL> select utl_inaddr.get_host_address('google.com') from dual; UTL_INADDR.GET_HOST_ADDRESS('GOOGLE.COM') -----------------------------------------------------------------------...
  • 根据域名获取ip地址、端口、服务器类型和标题
  • 在文章《无需socket或ping命令,使用gethostbyname获取域名ip地址》中提到用gethostbyname获取域名ip的方法。今天就用个socket的方法吧。 原理比较简单:在浏览器输入网址即可浏览网页,但浏览器是如何知道相应网址...
  • 通过域名获取ip地址

    千次阅读 2013-01-02 15:07:31
    方法一: IPHostEntry hostinfo = Dns.GetHostByName(@"www.baidu.com"); IPAddress[] aryIP = hostinfo.AddressList; string result = aryIP[0].ToString(); //或者 IPHostEntry hostinfo = Dns
  • 根据域名获取IP地址

    千次阅读 2011-10-27 09:06:22
    $PBExportHeader$n_cst_ip.sru forward global type n_cst_ip from nonvisualobject end type type s_wsadata from structure within n_cst_ip end type type os_hostent from structure within n_cst_ip end
  • Qt5--通过域名获取IP地址

    千次阅读 2018-07-18 17:25:43
    其实QHostInfo类也可以用来获取任意主机名的IP地址,如一个网站的IP地址。在这里我们可以使用lookupHost()函数。它是基于信号和槽的,一旦查找到了IP地址,就会触发槽函数。具体用法如下。 我们在widget.h文件中...
  • iOS 根据域名获取ip地址

    千次阅读 2017-02-13 13:05:29
    //h_addr_list[0]里4个字节,每个字节8位,此处为一个数组,一个域名对应多个ip地址或者本地时一个机器有多个网卡 char ip[ 20 ] = { 0 }; inet_ntop(AF_INET, &ip_addr, ip, sizeof (ip)); NSString * ...
  • 如何获取域名(网址)对应的IP地址

    万次阅读 2016-04-07 15:42:51
    域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组...域名只是为了方便阅读和记忆,计算机并不能直接处理,还需要通过域名服务器(DNS)把域名解析为对应的IP地址才能进行网络访问。
  • PHP根据域名获取IP地址

    千次阅读 2018-07-27 17:56:22
    gethostbyname — 返回主机名对应的 IPv4地址。 说明 string gethostbyname ( string $hostname ) 返回主机名 hostname 对应的 IPv4 互联网地址。 参数 hostname 主机名 返回值 成功时返回 IPv4 地址,失败...
  • IP地址获取】java获取客户端ip地址

    万次阅读 2018-08-31 16:44:38
    如何获取客户端ip和url访问中服务器端ip(如果是ip,不是域名)呢? String requestUrlIP = request.getServerName(); tring userIpAddr = request.getRemoteAddr(); System.out.println("***访问的Url中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,824
精华内容 58,729
关键字:

获取域名的ip地址