获取ip地理位置信息的方法、系统及位置信息服务器的制作方法

文档序号:7700516阅读:452来源:国知局
专利名称:获取ip地理位置信息的方法、系统及位置信息服务器的制作方法
技术领域
本发明涉及数字网络通信领域,具体的说,涉及一种获取IP地理位置信息的方 法、一种获取IP地理位置信息的系统及一种位置信息服务器。
背景技术
随着计算机网络的发展,越来越多的设备拥有独立的IP地址,如果能够根据IP地 址对设备进行地理定位,就可以为用户提供更多彩的、基于位置的应用服务。如何将IP地址与其对应的地理位置关联起来,早在1985年就有过尝试,其中较有 影响力的一种方式是从各个网站收集IP的地理位置信息,并将IP与地理位置信息关联,存 储在一个集中的服务器中。由于全球的IP地址数量非常巨大,要维护一个如此庞大的集中 数据库非常困难。另一个困难是缺乏有效的工具来检查数据库中地址的有效性,导致了数 据库中存储了大量的错误数据。例如,有很多Internet服务提供商提供基于IP地址的位置信息服务,但这些服 务提供的位置信息一般都较粗略,如只能定位到国家或者省或者市或者县,根本不能满足 特殊服务需要的精细和准确化需求;或者,有很多硬件设备提供商提供基于动态主机配 置协议(Dynamic HostConfiguration Protocol :DHCP)和链路层发现协议(Link Layer DiscoveryProtocol =LLDP)的位置服务,这些方法需要网络管理员将每一个端口对应的位 置信息手动配置到局域网的位置服务器中,只能在局域网管理域内部使用。考虑到大量 的局域网使用网络地址翻译(Network AddressTranslation :NAT)、虚拟专用网(Virtual Private Network :VPN)、防火墙等技术,这种依赖静态配置来提供的位置信息,也不是用户 /设备真实的位置信息。因此,需要本领域技术人员迫切解决的一个技术问题就是如何能够创新地提出 一种获取IP地理位置信息的方法,用以保证地理位置信息的准确度。

发明内容
本发明所要解决的技术问题是提供一种获取IP地理位置信息的方法,用以保证 地理位置信息的准确度。本发明还提供了一种获取IP地理位置信息的系统及一种位置信息服务器,用以 保证上述方法在实际中的实现及应用。为了解决上述问题,本发明公开了一种获取IP地理位置信息的方法,所述地理位 置信息存储于ISP所属DNS权威服务器中,所述方法包括接收应用程序发起的IP地理位置查询请求,所述IP地理位置查询请求中包括IP 地址;将所述IP地址转换成全称域名,并将所述全称域名封装成相应的第一 DNS查询请 求;依据所述第一 DNS查询请求,在各级DNS权威服务器中定位目标级DNS权威服务
5器;由所述目标级DNS权威服务器重定向所述全称域名,获得映射的ISP所属DNS权威服务 器的信息;将所述重定向的全称域名封装成相应的第二 DNS查询请求,并发送至所述ISP所 属DNS权威服务器,由所述ISP所属DNS权威服务器依据私有策略返回所述重定向全称域 名对应的TXT格式的地理位置信息;将所述地理位置信息转换成XML格式的信息,并返回给所述应用程序。优选的,所述全称域名包括顶级域名信息及子级域名信息,所述各级DNS权威服 务器包括根DNS权威服务器、顶级DNS权威服务器、及子级DNS权威服务器,所述目标级DNS 权威服务器的定位步骤包括将所述第一 DNS查询请求发送至根DNS权威服务器,由所述根DNS权威服务器返 回所述顶级域名信息指向的顶级DNS权威服务器信息;将所述第一 DNS查询请求发送至所述顶级DNS权威服务器,由所述顶级DNS权威 服务器返回所述子级域名信息指向的子级DNS权威服务器信息;将所述第一 DNS查询请求发送至所述子级DNS权威服务器。优选的,所述的方法,还包括记录所述全称域名中域名信息和目标级DNS权威服务器的对应关系至本地DNS服 务器。优选的,所述目标级DNS权威服务器的定位步骤还包括
将所述第一 DNS查询请求发送至本地DNS服务器;所述本地DNS服务器判断是否存在所述全称域名的域名信息与目标级DNS权威服 务器的对应关系记录,若是,则直接返回所述目标级DNS权威服务器的信息;将所述第一 DNS查询请求发送至所述目标级DNS权威服务器。优选的,所述IP地理位置信息的返回步骤包括若所述ISP所属DNS权威服务器依据私有策略确定返回所述重定向全称域名对应 的地理位置信息,则将所述地理位置信息封装为DNS响应数据包并返回;所述的方法还包括从所述DNS响应数据包中提取TXT格式的地理位置信息。优选的,所述目标级DNS权威服务器重定向操作为符合RFC2672协议的域名重定 向DNAME操作;所述XML格式为符合RFC5193协议的XML格式。本发明实施例还公开了一种获取IP地理位置信息的系统,包括应用程序服务 器、位置信息服务器、目标级DNS权威服务器和ISP所属DNS权威服务器其中,所述应用程序服务器用于发出IP地理位置查询请求,以及,接收对应所述请求返 回的XML格式的地理位置信息;所述目标级DNS权威服务器位于各级DNS权威服务器中,用于重定向所述全称域 名获得映射的ISP所属DNS权威服务器的信息;所述ISP所属DNS权威服务器用于依据所述第二 DNS查询请求,基于私有策略返 回所述重定向全称域名对应的TXT格式的地理位置信息;所述位置信息服务器包括以下模块地理位置查询请求接收模块,用于接收所述IP地理位置查询请求,所述查询请求中包括IP地址;IP地址转换模块,用于将所述IP地址转换成全称域名;DNS查询请求封装模块,用于将所述全称域名封装成相应的第一 DNS查询请求;以 及,将所述重定向的全称域名封装成相应的第二 DNS查询请求;目标级DNS交互模块,用于依据所述第一 DNS查询请求,在各级DNS权威服务器中 定位目标级DNS权威服务器;ISP所属DNS交互模块,用于将所述第二 DNS查询请求发送至所述ISP所属DNS权 威服务器,并接收对应所述请求返回的TXT格式的地理位置信息;地理位置格式转换模块,用于将所述TXT格式的地理位置信息转换成XML格式的 fn息;返回模块,用于将所述XML格式的地理位置信息返回给所述应用程序服务器。优选的,所述全称域名包括顶级域名信息及子域名信息,所述各级DNS权成服务 器包括根DNS权威服务器、顶级DNS权威服务器、及子级DNS权威服务器;所述根DNS权威 服务器用于依据第一 DNS查询请求返回所述顶级域名信息指向的顶级DNS权威服务器信 息;所述顶级DNS权威服务器用于依据第一 DNS查询请求返回所述子域名信息指向的子级 DNS权威服务器信息;所述位置信息服务器的目标级DNS交互模块包括根域名服务器交互子模块,用于将所述第一 DNS查询请求发送至根DNS权威服务 器,以及,接收所述根DNS权威服务器返回的顶级DNS权威服务器信息;顶级域名服务器交互子模块,用于将所述第一 DNS查询请求发送至所述顶级DNS 权威服务器,以及,接收所述顶级DNS权威服务器返回的子级DNS权威服务器信息;子级域名服务器交互子模块,用于将所述第一 DNS查询请求发送至所述子级DNS 权威服务器。优选的,所述的系统,还包括本地DNS服务器,包括记录模块,用于记录所述全称域名中域名信息和目标级DNS权威服务器的对应关系。优选的,所述位置信息服务器的目标级DNS交互模块还包括本地域名服务器交互子模块,用于将所述第一 DNS查询请求发送至本地DNS服务 器;以及,接收所述本地DNS服务器返回的目标级DNS权威服务器信息;目标级服务器交互子模块,用于将所述第一 DNS查询请求发送至所述目标级DNS 权威服务器; 所述本地DNS服务器还包括记录查找模块,用于依据所述第一 DNS查询请求判断本地DNS服务器是否存在与 所述全称域名的域名信息与目标级DNS权威服务器的对应关系记录,若是,则直接返回所 述目标级DNS权威服务器的信息;优选的,所述ISP所属DNS权威服务器包括封装响应模块,用于在所述ISP所属DNS权威服务器依据私有策略确定返回所述 重定向全称域名对应的地理位置信息时,将所述地理位置信息封装为DNS响应数据包并返 回;
7
所述位置信息服务器还包括地理位置信息提取模块,用于从所述DNS响应数据包中提取TXT格式的地理位置 fn息ο本发明实施例还公开了一种位置信息服务器,所述位置信息服务器用于接收应用 程序服务器发起的IP地理位置查询请求,所述查询请求中包括IP地址;以及,通过与目标 级DNS权威服务器和ISP所属DNS权威服务器交互,向应用程序服务器返回XML格式的地 理位置信息;其中,所述目标级DNS权威服务器位于各级DNS权威服务器中,用于重定向所 述全称域名获得映射的ISP所属DNS权威服务器的信息;所述ISP所属DNS权威服务器用 于依据所述第二 DNS查询请求,基于私有策略返回所述重定向全称域名对应的TXT格式的 地理位置信息;所述位置信息服务器具体包括以下模块地理位置查询请求接收模块,用于接收所述IP地理位置查询请求,所述查询请求 中包括IP地址;IP地址转换模块,用于将所述IP地址转换成全称域名;DNS查询请求封装模块,用于将所述全称域名封装成相应的第一 DNS查询请求;以 及,将所述重定向的全称域名封装成相应的第二 DNS查询请求;目标级DNS交互模块,用于依据所述第一 DNS查询请求,在各级DNS权威服务器中 定位目标级DNS权威服务器;ISP所属DNS交互模块,用于将所述第二 DNS查询请求发送至所述ISP所属DNS权 威服务器,并接收对应所述请求返回的TXT格式的地理位置信息;地理位置格式转换模块,用于将所述TXT格式的地理位置信息转换成XML格式的 fn息;返回模块,用于将所述XML格式的地理位置信息返回给所述应用程序服务器。与现有技术相比,本发明具有以下优点本发明通过采用负责分配IP地址的ISP来完成地理位置信息的收集和维护;通过 Internet的DNS系统来完成IP地址到ISP的映射以及IP地址到地理位置信息的映射。具 体而言,即利用DNS解析系统的树状层次结构,将IP地理位置信息的维护工作分布到各个 ISP,即将IP地址映射到负责分配该IP地址的ISP,通过访问所述ISP所属DNS权威服务 器,即可实现IP地址到地理位置信息的映射。在这种情况下,由于ISP维护最为准确的IP 地址与地理位置信息的对应关系,因而可以保证所获得IP地理位置信息的准确性;再者, 在具体实现中,ISP只需要将自己所维护的IP地理位置信息提交到ISP所属DNS权威服务 器,无需泄露IP地址的分配信息,从而保障其自身利益。


图1是本发明一种获取IP地理位置信息的方法实施例1的流程图;图2是DNS域名空间树结构示意图;图3是本发明一种获取IP地理位置信息的方法实施例2的流程图;图4是本发明一种获取IP地理位置信息的系统实施例的结构图;图5是本发明一种位置信息服务器实施例的结构图。
8
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。通过分析现有技术可以得出,使用IP地址来获取地理位置信息涉及到两个关键 问题,一个问题是地理位置的收集和维护必须是分布的,不能是集中的。另一个问题是地理 位置信息的获取必须是开放的、全局的,不能是静态配置的、局部的。针对上述问题,本专利发明人创造性地提出了本发明实施例的核心构思之一,即 由负责分配该IP地址的ISP来完成地理位置信息的收集和维护;IP地址到ISP的映射以 及IP地址到地理位置信息的映射基于Internet的DNS系统来完成。具体而言,即利用DNS 解析系统的树状层次结构,将IP地理位置信息的维护工作分布到各个ISP,即将IP地址映 射到负责分配该IP地址的ISP ;通过访问所述ISP所属DNS权威服务器,即可实现IP地址 到地理位置信息的映射。参照图1,示出了本发明一种获取IP地理位置信息的方法实施例1的流程图,所述 地理位置信息存储于ISP所属DNS权威服务器中;本实施例具体可以包括以下步骤步骤101、接收应用程序发起的IP地理位置查询请求,所述IP地理位置查询请求 中包括IP地址;步骤102、将所述IP地址转换成全称域名,并将所述全称域名封装成相应的第一 DNS查询请求;步骤103、依据所述第一 DNS查询请求,在各级DNS权威服务器中定位目标级DNS 权威服务器;步骤104、由所述目标级DNS权威服务器重定向所述全称域名,获得映射的ISP所 属DNS权威服务器的信息;步骤105、将所述重定向的全称域名封装成相应的第二 DNS查询请求,并发送至所 述ISP所属DNS权威服务器;步骤106、由所述ISP所属DNS权威服务器依据私有策略返回所述全称域名对应的 TXT格式的地理位置信息;步骤107、将所述地理位置信息转换成XML格式的信息,并返回给所述应用程序。在具体实现中,所述IP地理位置查询请求可由应用程序通过HTTP协议发出,为 便于构造第一 DNS查询请求,需要将所述IP地理位置查询请求中的IP地址转换成全称域 名(Fully Qualified Domain Name :FQDN)。全称域名是一种统一的、可在世界范围内寻 址的URI,可以包括主机名和各级域名信息,公知的是,构造全称域名的方式可以通过将IP 地址逆转,再加上相关域名后缀完成,例如,IP地址=218. 241. 111. 22转换成FQDN可以为 22. 111. 241. 218. loc. cn。全称域名可以从逻辑上准确地表示出主机在什么地方,也可以说 全称域名是主机名的一种完全表示形式。从全称域名中包含的信息可以看出主机在域名树 中的位置。在本发明的一种优选实施例中,所述全称域名可以包括顶级域名信息及子级域名 信息,所述各级DNS权威服务器可以包括根DNS权威服务器、顶级DNS权威服务器、及子级 DNS权威服务器,在这种情况下,所述步骤103可以包括以下子步骤
子步骤Al、将所述第一 DNS查询请求发送至根DNS权威服务器,由所述根DNS权威 服务器返回所述顶级域名信息指向的顶级DNS权威服务器信息;子步骤A2、将所述第一 DNS查询请求发送至所述顶级DNS权威服务器,由所述顶级 DNS权威服务器返回所述子级域名信息指向的子级DNS权威服务器信息;子步骤A3、将所述第一 DNS查询请求发送至所述子级DNS权威服务器。例如,假设接收到IP地理位置查询请求中的IP地址为“58. 61. 200. 1,,,将其转换 为FQDN为1. 200. 61. 58. loc. cn.,并将该FQDN封装成相应的第一 DNS查询请求,参考图2 所示的DNS域命名空间树结构,首先将所述第一 DNS查询请求发送至根DNS权威服务器;由 所述根DNS权威服务器解析该FQDN的域名信息为loc. cn,返回该FQDN所属的顶级DNS权 威服务器记录地址(本例中为201所示的CN.顶级域名结点);然后再将所述第一 DNS查询请求发送至所述顶级DNS权威服务器(CN.域名解析 权威服务器);所述顶级DNS权威服务器返回二级DNS权威服务器的记录地址(本例中为 202所示的loc.cn. 二级域名结点);在本例中,所述二级DNS权威服务器即为目标级的DNS 权威服务器; 接下来再将所述第一 DNS查询请求发送至所述二级DNS权威服务器(loc. cn域名 解析权威服务器);由所述二级DNS权威服务器获取ISP所属DNS权成服务器的信息。本实施例示出了采用DNS逐级解析方式来定位目标级DNS权威服务器的过程,采 用这种方式,当DNS权威服务器地址有变更时,可以及时更新,从而可以保证目标级DNS权 威服务器定位的准确性。作为另一优选实施例,本发明还可以包括以下步骤记录所述全称域名中域名信息和目标级DNS权威服务器的对应关系至本地DNS服 务器。在这种情况下,所述步骤103还可以包括以下子步骤子步骤Bi、将所述第一 DNS查询请求发送至本地DNS服务器;子步骤B2、所述本地DNS服务器判断是否存在所述全称域名的域名信息与目标级 DNS权威服务器的对应关系记录,若是,则直接返回所述目标级DNS权威服务器的信息;子步骤B3、将所述第一 DNS查询请求发送至所述目标级DNS权威服务器。更为优选的是,若本地DNS服务器中判断不存在所述域名信息与目标级DNS权威 服务器的对应关系记录时,还可以在各级DNS权威服务器中重新定位目标级DNS权威服务 器,如执行上述子步骤A1-A3。本地DNS服务器的缓存特性为全称域名的后续查询提供了加速性能的方法,同时 大大减少了网络上与DNS相关的查询通信量。在实际中,为保证缓存区中域名信息和目标 级DNS权威服务器的对应关系的有效性,在报告缓存信息时,会注明这是“非权威性”映射, 并给出获取该对应关系的DNS服务器的地址信息。当然,上述定位目标级DNS权威服务器仅仅用作示例,本领域技术人员根据需要 采用任一方式都是可行的,例如,采用DNS递归解析的方式,本发明对此无需加以限制。在实际中,是由互联网服务提供商(Internet Service Provider ISP)负责维护 IP设备的IP地址与地理位置信息的对应关系,因而,如果要获得最为准确的IP地理位置信 息,则需要获得ISP所属DNS权威服务器的信息。在本发明实施例中,IP地址到ISP所属
10DNS权威服务器的映射是通过目标级DNS权威服务器来实现的,具体而言,所述目标级DNS 权威服务器可以通过采用符合RFC2672协议的DNAME操作来实现全称域名到ISP所属DNS 权威服务器信息的映射。在RFC2672中定义的DNAME,其资源记录能够将一个子域名空间全部映射到另一 个域空间,DNAME记录只为单个节点创建别名,单个DNAME资源记录将导致重命名域命名空 间子树中的根和所有后代,这使得组织能够重命名其部分域命名空间。例如,目标级DNS权 威服务器的一个区文件有如下配置200. 61. 58. loc. cn. DNAME 200. 61. 58. ispl. loc. cn.200.61.58.loc.cn. A192.0. 2. 23则查询200. 61. 58. ispl. loc. cn.的 A 记录时会返回 192. 0. 2. 23。即该目标级DNS权威服务器利用DNAME机制即可区分IP地址所属ISP的信息。在本发明实施例中,优选的是,所述步骤106可以包括以下子步骤子步骤Cl、所述ISP所属DNS权威服务器依据私有策略判断是否返回所述重定向 全称域名对应的地理位置信息,若是,则执行子步骤C2 ;否则不返回地理位置信息;子步骤C2、将所述地理位置信息封装为DNS响应数据包并返回。在这种情况下,本发明实施例还可以包括以下子步骤从所述DNS响应数据包中提取TXT格式的地理位置信息。在实际中,ISP会根据各自的私有策略决定是否返回地理位置信息,并可决定返回 位置信息的精确程度。例如,将所返回的地理位置信息定位到市、县,还是定位到街道或者 小区。为方便应用程序使用常见的文本编辑器直接编辑XML格式的地理位置信息,本发 明需要将所述地理位置信息转换成XML格式的信息,优选的是,所述XML格式可以为符合 RFC5193协议的XML格式,然后再通过http协议将所述XML格式的地理位置信息返回给相 应的应用程序。参照图3,示出了本发明一种获取IP地理位置信息的方法实施例2的流程图,所述 地理位置信息存储于ISP所属DNS权威服务器中;本实施例具体可以包括以下步骤步骤301、接收应用程序发起的IP地理位置查询请求,所述IP地理位置查询请求 中包括IP地址;步骤302、将所述IP地址转换成全称域名,并将所述全称域名封装成相应的第一 DNS查询请求;所述全称域名包括域名信息;步骤303、将所述第一 DNS查询请求发送至本地DNS服务器,由本地DNS服务器判 断是否存在与所述全称域名的域名信息与目标级DNS权威服务器的对应关系记录,若是, 则执行步骤305 ;若否,则执行步骤304 ;步骤304、本地DNS服务器将所述第一 DNS查询请求发送至各级DNS权威服务器, 在所述各级DNS权威服务器中逐级定位目标级DNS权威服务器;然后执行步骤305 ;步骤305、将所述第一 DNS查询请求发送至所述目标级DNS权威服务器;步骤306、由所述目标级DNS权威服务器利用DNAME机制完成所述全称域名至ISP 所属DNS权威服务器的映射;步骤307、将所述重定向的全称域名封装成相应的第二 DNS查询请求,并发送至所
11述ISP所属DNS权威服务器;步骤308、所述ISP所属DNS权威服务器依据私有策略返回所述全称域名对应的 TXT格式的地理位置信息;步骤309、将所述地理位置信息转换成XML格式的信息,并返回给所述应用程序。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但 是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某 些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描 述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。参照图4,示出了本发明一种获取IP地理位置信息的系统实施例的结构图,具体 可以包括应用程序服务器401、位置信息服务器402、目标级DNS权威服务器403和ISP所 属DNS权威服务器404 其中,所述应用程序服务器401用于发出IP地理位置查询请求,以及,接收对应所述请 求返回的XML格式的地理位置信息;所述位置信息服务器402可以包括以下模块地理位置查询请求接收模块4021,用于接收所述IP地理位置查询请求,所述查询 请求中包括IP地址;IP地址转换模块4022,用于将所述IP地址转换成全称域名;DNS查询请求封装模块4023,用于将所述全称域名封装成相应的第一 DNS查询请 求;以及,将所述重定向的全称域名封装成相应的第二 DNS查询请求;目标级DNS交互模块4024,用于依据所述第一 DNS查询请求,在各级DNS权威服务 器中定位目标级DNS权威服务器;ISP所属DNS交互模块4025,用于将所述第二 DNS查询请求发送至所述ISP所属 DNS权威服务器,并接收对应所述请求返回的TXT格式的地理位置信息;地理位置格式转换模块4026,用于将所述TXT格式的地理位置信息转换成XML格 式的信息;返回模块4027,用于将所述XML格式的地理位置信息返回给所述应用程序服务 器;所述目标级DNS权威服务器403位于各级DNS权威服务器中,用于重定向所述全 称域名获得映射的ISP所属DNS权威服务器404的信息;所述ISP所属DNS权威服务器404用于依据所述第二 DNS查询请求,基于私有策 略返回所述重定向全称域名对应的TXT格式的地理位置信息。在实际中,位置信息服务器402的信息对外完全公开,所有的应用程序服务器都 可以直接访问位置信息服务器402获取地理位置信息,位置信息服务器402负责到不同的 ISP去查询IP地址对应设备的地理位置信息,屏蔽了 IP地址到地理位置信息的映射细节。 这使得应用程序服务器获取地理位置信息的手段是透明的,应用程序服务器只需要发送 HTTP请求,传递要查询地理位置信息的设备的IP地址,就可以接收到该设备的XML格式的 地理位置信息,且该XML报文符合RFC5139的标准规定,十分有利于应用程序解析。在本发明的一种优选实施例中,所述全称域名可以包括顶级域名信息及子域名信 息,所述各级DNS权威服务器可以包括根DNS权威服务器、顶级DNS权威服务器、及子级DNS权威服务器;所述根DNS权威服务器用于依据第一 DNS查询请求返回所述顶级域名信息指 向的顶级DNS权威服务器信息;所述顶级DNS权威服务器用于依据第一 DNS查询请求返回 所述子域名信息指向的子级DNS权威服务器信息;所述位置信息服务器的目标级DNS交互模块可以包括以下子模块根域名服务器交互子模块,用于将所述第一 DNS查询请求发送至根DNS权威服务 器,以及,接收所述根DNS权威服务器返回的顶级DNS权威服务器信息;顶级域名服务器交互子模块,用于将所述第一 DNS查询请求发送至所述顶级DNS 权威服务器,以及,接收所述顶级DNS权威服务器返回的子级DNS权威服务器信息;子级域名服务器交互子模块,用于将所述第一 DNS查询请求发送至所述子级DNS 权威服务器。在本发明的另一优选实施例中,本发明实施例还可以包括本地DNS服务器,可以 包括记录模块,用于记录所述全称域名中域名信息和目标级DNS权威服务器的对应关系。在这种情况下,所述位置信息服务器的目标级DNS交互模块还可以包括以下子模 块本地域名服务器交互子模块,用于将所述第一 DNS查询请求发送至本地DNS服务器;以 及,接收所述本地DNS服务器返回的目标级DNS权威服务器信息;目标级服务器交互子模块,用于将所述第一 DNS查询请求发送至所述目标级DNS 权威服务器;所述本地DNS服务器还可以包括以下模块记录查找模块,用于依据所述第一 DNS查询请求判断本地DNS服务器是否存在与 所述全称域名的域名信息与目标级DNS权威服务器的对应关系记录,若是,则直接返回所 述目标级DNS权威服务器的信息。在本发明实施例中,优选的是,所述ISP所属DNS权威服务器可以包括以下模块封装响应模块,用于在所述ISP所属DNS权威服务器依据私有策略确定返回所述 重定向全称域名对应的地理位置信息时,将所述地理位置信息封装为DNS响应数据包并返 回;在这种情况下,所述位置信息服务器还可以包括以下模块地理位置信息提取模块,用于从所述DNS响应数据包中提取TXT格式的地理位置 fn息ο对于图4所示的系统实施例而言,由于其与图2所示的方法实施例基本相似,所以 描述的比较简单,相关之处参见方法实施例的部分说明即可。为使本领域技术人员更好地理解本发明,以下结合图5所示的具体例子本实施例 进一步说明。步骤Tl、应用程序服务器向位置信息服务器发出IP地理位置查询请求假设位置信息服务器的地址为location, org:8080,应用程序服务器的IP地址为 “58. 61. 200. 1”,应用程序服务器所发出的HTTP POST请求如以下代码所示POST/location HTTP/1. 1Host:location, org:8080Content-Type:application/xml
13
Content-Length:80< ? xml version = “ 1.0" ? ><locationRequestxmlns = “ urnietfparamsxmlnslocation“ />步骤T2、位置信息服务器的IP地址转换模块将所述IP地址转换成FQDN ;所述IP地址转换模块提取出应用程序服务器的IP地址“58. 61. 200. 1”,并构造 FQDN 1. 200. 61. 58. loc. cn.;步骤T3、位置信息服务器的DNS查询请求封装模块将所述FQDN封装成相应的第一 DNS查询请求;步骤T4、位置信息服务器的目标级DNS交互模块依据所述第一 DNS查询请求,在各 级DNS权威服务器中定位目标级DNS权威服务器;在本例中,所述目标级DNS交互模块可以用于执行以下操作首先,将所述第一 DNS查询请求发送至根DNS权威服务器,并接收所述根DNS权威 服务器返回的顶级DNS权威服务器信息;然后,将所述第一 DNS查询请求发送至cn.顶级DNS权威服务器,以及,接收所述 cn.顶级DNS权威服务器返回的loc. cn. 二级DNS权威服务器信息;

然后,将所述第一 DNS查询请求发送至loc. cn. 二级DNS权威服务器信息。 T5、loc. cn. 二级DNS权威服务器利用DNAME机制完成IP地址到ISP的映射; 在本例中,loc. cn.区文件内容片段如下 $TTL 86400
loc. cn. IN SOA cnnic. loc. cn. zzz. cnic. cn.(
1 ;serial 3h ;refresh after 3 hours
Ih ;retry after 1 hour
Iw ;expire after 1 week
Ih ;negative caching TTL of 1 hour
IN
$0RIGIN loc.cn. nsIN
ispl IN NS ns. ispl IN isp2 IN NS ns. isp2IN
NS
ns
218. 241. 108. 190 218. 241. 108. 193
A
ns. ispl A
ns. isp2
A218. 241. 108. 191
;assume the following IP addresses are allocated by ISPl 200. 61. 58. loc. cn. IN DNAME 200. 61. 58. ispl. loc. cn. ;assume the following IP addresses are allocated by ISP2 211. 102. 241. loc. cn. IN DNAME 211. 102. 241. isp2. loc. cn. 上述代码表示位置信息服务器发出的第一 DNS查询请求中FQDN被映射成
1. 200. 61. 58. ispl. loc. cn.,即该IP地理位置信息属于ISPl管理,并获取到ISPl所属的
14DNS权威服务器的地址为218. 241. 108. 193。 步骤T6、位置信息服务器的DNS查询请求封装模块将所述FQDN封装成相应的第 二 DNS查询请求,ISP所属DNS交互模块将所述第二 DNS查询请求发送至所述ISPl所属的
DNS权威服务器;
所述ISPl所属的DNS权威服务器上的区文件片段如下
$TTL 86400
200. 61. 58. ispl. loc.cn. IN S0A. ispl. loc. cn. zzz. cnnic. cn.(
1;serial
3h ;refresh after 3 hours
Ih ;retry after 1 hour
Iw ;expire after 1 week
Ih ;negative caching ttl of 1 hour
)
INNS ns. ispl. loc. cn.
3. 200. 61. 58. ispl. loc. cn. IN TXT " country = china al = guangdong0 a3 =shenzhen a4 = 0a5 ==baoan a6 = qianjing2road bid = guhaihuayuan
=bdong2fIoor room = 100 pic = O pen = Opobox = O addcode = O seat = 0 rd = O rdsec = O rdbr = O rdsubbr = O prm = O pom = O longitude = 0. Olatitude = 0. O height = 0.0"2. 200. 61. 58. ispl. loc. cn. IN TXT" country =中国 al =广东 a2 = 0 a3 =深 圳a4 = 0 a5 =宝安a6 =前进2路bid =古海花园unit = 2号楼room = 101 pic = 0 pen = 0 pobox = 0 addcode = 0 seat = Ord = 0 rdsec = 0 rdbr = 0 rdsubbr = 0 prm = 0 pom = 0 longitude = 0. 0 latitude = 0. 0 height = 0.0"1. 200. 61. 58. ispl. loc. cn. IN TXT" country =中国 al =广东 a2 = 0 a3 =深 圳a4 = 0 a5 =宝安a6 =前进2路bid =古海花园unit = 2号楼room = 103 pic = 0 pen = 0 pobox = 0 addcode = 0 seat = Ord = 0 rdsec = 0 rdbr = 0 rdsubbr = 0 prm = 0 pom = 0 longitude = 0. 0 latitude = 0. 0 height = 0.0"至此查询至IjFQDN 1· 200. 61. 58. ispl. loc. cn 对应的 TXT 记录为〃 country =中 国al =广东a2 = 0 a3 =深圳a4 = 0 a5 =宝安a6 =前进2路bid =古海花园unit =2 号楼 room = 103 pic = 0 pen = 0 pobox = 0 addcode = Oseat = 0 rd = 0 rdsec =0 rdbr = 0 rdsubbr = 0 prm = 0 pom = 0 longitude = 0. Olatitude = 0. 0 height =0.0",所述ISPl所属的DNS权威服务器将此TXT记录封装为DNS响应包,并返回给位置 信息服务器。步骤T7、位置信息服务器的地理位置格式转换模块从所述DNS响应包中提取TXT 记录格式的地理位置信息,并按照RFC5139的标准规定封装成XML格式,由返回模块返回给 应用程序服务器;具体操作可以参考如下代码< ? xml version = “ 1.0〃 encoding = “ UTF-8" ? >〈presence xmlns = “ urn:ietf:params:xml:ns:pidf“xmlns:gp = " urn:ietf:params:xml:ns:pidf:geoprivlO"
15
xmlnscl = 〃 urn:ietfparamsxml:ns:pidfgeoprivlOcivicLo c〃entity =“ presgeotargetiexample. com" >〈tuple id=〃 sg89ae〃 >〈status〉<gp: geopriv><gp:location-info><cl:civicAddress><cl: country)中国 </cl: country)<cl:Al> 广东 </cl:Al><cl:A2>0</cl:A2><cl:A3> 深圳 </cl :A3><cl:A4>0</cl:A4><cl:A5> 宝安 </cl:A5><cl:A6> 前进 2 路 </cl:A6><cl: BLD> 古海花园 </cl: BLD><cl: UNIT>2 号楼 </cl: UNIT〉<cl:R00M>103</cl:R00M><cl:PLC>0</cl:PLC><cl:PCN>0</cl:PCN><cl:P0B0X>0</cl:P0B0X><cl:ADDC0DE>0</cl:ADDC0DE><cl:SEAT>0</cl:SEAT><cl:RD>0</cl:RD><cl:RDSEC>0</cl: RDSEO<cl:RDBR>0</cl:RDBR><cl:RDSUBBR>0</cl:RDSUBBR〉<cl:PRM>0</cl:PRM><cl: P0M>0. </cl: P0M></cl:civicAddress></gp:location-info><gp:usage_rules><gp:retransmission-allowed>yes</gp:retransmission-allowed><gp:retention-expiry>2008-06-23T04:57:29Z</ gp:retention-expiry></gp:usage_rules></gp:geopriv>〈/status〉<timestamp>2008-12-30T09:22:14Z</timestamp>
</tuple></presence>步骤T8、应用程序服务器处理XML格式的位置信息,为用户提供基于位置的相关 服务。即在上例中,用户依据IP地址“58. 61. 200. 1”查询对应的地理位置信息时,可以 获取到"中国广东省深圳市宝安区前进2路古海花园2号楼103室”的准确地理位置信息。参照图5,示出了本发明一种位置信息服务器实施例的结构图,所述位置信息服务 器用于接收应用程序服务器发起的IP地理位置查询请求,所述查询请求中包括IP地址;以 及,通过与目标级DNS权威服务器和ISP所属DNS权威服务器交互,向应用程序服务器返回 XML格式的地理位置信息;其中,所述位置信息服务器具体可以包括以下模块地理位置查询请求接收模块501,用于接收所述IP地理位置查询请求,所述查询 请求中包括IP地址;IP地址转换模块502,用于将所述IP地址转换成全称域名;DNS查询请求封装模块503,用于将所述全称域名封装成相应的第一 DNS查询请 求;以及,将所述重定向的全称域名封装成相应的第二 DNS查询请求;目标级DNS交互模块504,用于依据所述第一 DNS查询请求,在各级DNS权威服务 器中定位目标级DNS权威服务器;ISP所属DNS交互模块505,用于将所述第二 DNS查询请求发送至所述ISP所属 DNS权威服务器,并接收对应所述请求返回的TXT格式的地理位置信息; 地理位置格式转换模块506,用于将所述TXT格式的地理位置信息转换成XML格式 的信息;返回模块507,用于将所述XML格式的地理位置信息返回给所述应用程序服务器;所述目标级DNS权威服务器位于各级DNS权威服务器中,用于重定向所述全称域 名获得映射的ISP所属DNS权威服务器的信息;所述ISP所属DNS权威服务器用于依据所述第二 DNS查询请求,基于私有策略返 回所述重定向全称域名对应的TXT格式的地理位置信息。对于图5所示的系统实施例而言,由于其与图2所示的方法实施例基本相似,所以 描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明所提供的一种获取IP地理位置信息的方法、系统及一种位置信息 服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一 般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
一种获取IP地理位置信息的方法,其特征在于,所述地理位置信息存储于ISP所属DNS权威服务器中,所述方法包括接收应用程序发起的IP地理位置查询请求,所述IP地理位置查询请求中包括IP地址;将所述IP地址转换成全称域名,并将所述全称域名封装成相应的第一DNS查询请求;依据所述第一DNS查询请求,在各级DNS权威服务器中定位目标级DNS权威服务器;由所述目标级DNS权威服务器重定向所述全称域名,获得映射的ISP所属DNS权威服务器的信息;将所述重定向的全称域名封装成相应的第二DNS查询请求,并发送至所述ISP所属DNS权威服务器,由所述ISP所属DNS权威服务器依据私有策略返回所述重定向全称域名对应的TXT格式的地理位置信息;将所述地理位置信息转换成XML格式的信息,并返回给所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述全称域名包括顶级域名信息及子级 域名信息,所述各级DNS权威服务器包括根DNS权威服务器、顶级DNS权威服务器、及子级 DNS权威服务器,所述目标级DNS权威服务器的定位步骤包括将所述第一 DNS查询请求发送至根DNS权威服务器,由所述根DNS权威服务器返回所 述顶级域名信息指向的顶级DNS权威服务器信息;将所述第一 DNS查询请求发送至所述顶级DNS权威服务器,由所述顶级DNS权威服务 器返回所述子级域名信息指向的子级DNS权威服务器信息; 将所述第一 DNS查询请求发送至所述子级DNS权威服务器。
3.根据权利要求2所述的方法,其特征在于,还包括记录所述全称域名中域名信息和目标级DNS权威服务器的对应关系至本地DNS服务ο
4.根据权利要求3所述的方法,其特征在于,所述目标级DNS权威服务器的定位步骤还 包括将所述第一 DNS查询请求发送至本地DNS服务器;所述本地DNS服务器判断是否存在所述全称域名的域名信息与目标级DNS权威服务器 的对应关系记录,若是,则直接返回所述目标级DNS权威服务器的信息; 将所述第一 DNS查询请求发送至所述目标级DNS权威服务器。
5.根据权利要求1、2、3或4所述的方法,其特征在于,所述IP地理位置信息的返回步 骤包括若所述ISP所属DNS权威服务器依据私有策略确定返回所述重定向全称域名对应的地 理位置信息,则将所述地理位置信息封装为DNS响应数据包并返回; 所述的方法还包括从所述DNS响应数据包中提取TXT格式的地理位置信息。
6.根据权利要求5所述的方法,其特征在于,所述目标级DNS权威服务器重定向操作为 符合RFC2672协议的域名重定向DNAME操作;所述XML格式为符合RFC5193协议的XML格式。
7.一种获取IP地理位置信息的系统,其特征在于,包括应用程序服务器、位置信息服2务器、目标级DNS权威服务器和ISP所属DNS权威服务器其中,所述应用程序服务器用于发出IP地理位置查询请求,以及,接收对应所述请求返回的 XML格式的地理位置信息;所述目标级DNS权威服务器位于各级DNS权威服务器中,用于重定向所述全称域名获 得映射的ISP所属DNS权威服务器的信息;所述ISP所属DNS权威服务器用于依据所述第二 DNS查询请求,基于私有策略返回所 述重定向全称域名对应的TXT格式的地理位置信息; 所述位置信息服务器包括以下模块地理位置查询请求接收模块,用于接收所述IP地理位置查询请求,所述查询请求中包 括IP地址;IP地址转换模块,用于将所述IP地址转换成全称域名;DNS查询请求封装模块,用于将所述全称域名封装成相应的第一 DNS查询请求;以及, 将所述重定向的全称域名封装成相应的第二 DNS查询请求;目标级DNS交互模块,用于依据所述第一 DNS查询请求,在各级DNS权威服务器中定位 目标级DNS权威服务器;ISP所属DNS交互模块,用于将所述第二 DNS查询请求发送至所述ISP所属DNS权威服 务器,并接收对应所述请求返回的TXT格式的地理位置信息;地理位置格式转换模块,用于将所述TXT格式的地理位置信息转换成XML格式的信息;返回模块,用于将所述XML格式的地理位置信息返回给所述应用程序服务器。
8.根据权利要求7所述的系统,其特征在于,所述全称域名包括顶级域名信息及子域 名信息,所述各级DNS权威服务器包括根DNS权威服务器、顶级DNS权威服务器、及子级DNS 权威服务器;所述根DNS权威服务器用于依据第一 DNS查询请求返回所述顶级域名信息指 向的顶级DNS权威服务器信息;所述顶级DNS权威服务器用于依据第一 DNS查询请求返回 所述子域名信息指向的子级DNS权威服务器信息;所述位置信息服务器的目标级DNS交互模块包括根域名服务器交互子模块,用于将所述第一 DNS查询请求发送至根DNS权威服务器,以 及,接收所述根DNS权威服务器返回的顶级DNS权威服务器信息;顶级域名服务器交互子模块,用于将所述第一 DNS查询请求发送至所述顶级DNS权威 服务器,以及,接收所述顶级DNS权威服务器返回的子级DNS权威服务器信息;子级域名服务器交互子模块,用于将所述第一 DNS查询请求发送至所述子级DNS权威 服务器。
9.根据权利要求8所述的系统,其特征在于,还包括 本地DNS服务器,包括记录模块,用于记录所述全称域名中域名信息和目标级DNS权威服务器的对应关系。
10.根据权利要求9所述的系统,其特征在于,所述位置信息服务器的目标级DNS交互 模块还包括本地域名服务器交互子模块,用于将所述第一 DNS查询请求发送至本地DNS服务器;以 及,接收所述本地DNS服务器返回的目标级DNS权威服务器信息;目标级服务器交互子模块,用于将所述第一 DNS查询请求发送至所述目标级DNS权威 服务器;所述本地DNS服务器还包括记录查找模块,用于依据所述第一 DNS查询请求判断本地DNS服务器是否存在与所述 全称域名的域名信息与目标级DNS权威服务器的对应关系记录,若是,则直接返回所述目 标级DNS权威服务器的信息。
11.根据权利要求7、8、9或10所述的系统,其特征在于,所述ISP所属DNS权威服务器 包括封装响应模块,用于在所述ISP所属DNS权威服务器依据私有策略确定返回所述重定 向全称域名对应的地理位置信息时,将所述地理位置信息封装为DNS响应数据包并返回;所述位置信息服务器还包括地理位置信息提取模块,用于从所述DNS响应数据包中提取TXT格式的地理位置信息。
12.一种位置信息服务器,其特征在于,所述位置信息服务器用于接收应用程序服务器 发起的IP地理位置查询请求,所述查询请求中包括IP地址;以及,通过与目标级DNS权威 服务器和ISP所属DNS权威服务器交互,向应用程序服务器返回XML格式的地理位置信息; 其中,所述目标级DNS权威服务器位于各级DNS权威服务器中,用于重定向所述全称域名获 得映射的ISP所属DNS权威服务器的信息;所述ISP所属DNS权威服务器用于依据所述第二 DNS查询请求,基于私有策略返回所述重定向全称域名对应的TXT格式的地理位置信息;所述位置信息服务器具体包括以下模块地理位置查询请求接收模块,用于接收所述IP地理位置查询请求,所述查询请求中包 括IP地址;IP地址转换模块,用于将所述IP地址转换成全称域名;DNS查询请求封装模块,用于将所述全称域名封装成相应的第一 DNS查询请求;以及, 将所述重定向的全称域名封装成相应的第二 DNS查询请求;目标级DNS交互模块,用于依据所述第一 DNS查询请求,在各级DNS权威服务器中定位 目标级DNS权威服务器;ISP所属DNS交互模块,用于将所述第二 DNS查询请求发送至所述ISP所属DNS权威服 务器,并接收对应所述请求返回的TXT格式的地理位置信息;地理位置格式转换模块,用于将所述TXT格式的地理位置信息转换成XML格式的信息;返回模块,用于将所述XML格式的地理位置信息返回给所述应用程序服务器。
全文摘要
本发明提供了一种获取IP地理位置信息的方法,包括接收应用程序发起的IP地理位置查询请求,所述请求中包括IP地址;将所述IP地址转换成全称域名,并封装成相应的第一DNS查询请求;依据所述第一DNS查询请求,定位目标级DNS权威服务器;由所述目标级DNS权威服务器重定向所述全称域名,获得映射的ISP所属DNS权威服务器的信息;将重定向的全称域名封装成相应的第二DNS查询请求,并发送至所述ISP所属DNS权威服务器,由所述ISP所属DNS权威服务器依据私有策略返回对应的TXT格式的地理位置信息;将所述地理位置信息转换成XML格式的信息,返回给所述应用程序。本发明可以保证获取地理位置信息的准确度。
文档编号H04L29/06GK101902442SQ20091008532
公开日2010年12月1日 申请日期2009年5月25日 优先权日2009年5月25日
发明者张翠玲, 李晓东, 毛伟, 金键, 陈远民 申请人:中国科学院计算机网络信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1