1.一种获取IP地址的方法,其特征在于,所述方法包括:域名系统服务器通过预设的端口接收客户端发送的DNS访问请求;
根据所述DNS访问请求向DNS接口返回预定格式的IP数据包;
利用DNS接口对所述IP数据包进行解析,获取待请求的IP地址;
向所述客户端发送所述IP地址;
其中,所述DNS服务器为预先建立的,且独立于应用系统提供的DNS服务器;所述DNS接口为预先建立的,且所述DNS接口使用的解析协议独立于应用系统提供的解析协议。
2.如权利要求1所述的方法,其特征在于,所述DNS服务器通过预设的端口接收客户端发送的DNS访问请求,包括:建立套接字通讯协议SSL;
所述DNS服务器基于所述SSL协议,通过预设的端口接收客户端发送的DNS访问请求。
3.如权利要求2所述的方法,其特征在于,所述DNS服务器基于所述SSL协议,通过预设的端口接收客户端发送的DNS访问请求,包括:利用所述SSL协议中的SSLContext类调用getSSLContext方法获取SSL环境变量context;
利用所述环境变量context调用getSocketFactory方法获取socket工厂对象;
利用所述socket工厂对象的createSocket方法创建SSLScoket连接;
基于所述SSLScoket连接,通过预设的端口接收客户端发送的DNS访问请求。
4.如权利要求1所述的方法,其特征在于,所述根据所述DNS访问请求向DNS接口返回预定格式的IP数据包之前,还包括:解析所述DNS访问请求,获取第一校验时间,所述第一校验时间为DNS服务器计算出的自身当前的时间毫秒值;
计算所述第一校验时间与本地时间毫秒值的时间差值;
判断所述时间差值是否大于预设的时间值,若所述时间差值大于所述预设的时间值,则忽略所述DNS访问请求。
5.如权利要求1所述的方法,其特征在于,所述根据所述DNS访问请求向DNS接口返回预定格式的IP数据包,包括:若时间差值不大于所述预设的时间值,则利用加密算法对域名数据、IP数据及第二校验时间进行加密,并打包成IP数据包;
计算所述IP数据包的长度;
将所述IP数据包及所述IP数据包的长度返回至所述DNS接口;其中,所述第二校验时间指客户端计算出的自身当前的时间毫秒值。
6.如权利要求1所述的方法,其特征在于,利用DNS接口对所述IP数据包进行解析,获取待请求的IP地址,包括:根据IP数据包的长度字段读取加密的数据;
利用预先约定的密钥对所述数据进行解密;
利用lookup回调方法在解密后的数据中读取待请求的域名,根据所述域名查询出相应的IP地址。
7.如权利要求1所述的方法,其特征在于,当所述DNS服务器异常时,所述方法还包括:基于应用系统提供的解析协议,利用lookup回调方法调用Dns.SYSTEM.lookup(hostname)函数返回所述应用系统的DNS接口提供的解析数据。
8.一种获取IP地址的系统,其特征在于,所述系统包括:域名系统服务器,用于通过预设的端口接收客户端发送的DNS访问请求;并根据所述DNS访问请求向DNS接口返回预定格式的IP数据包;
DNS接口,用于对所述IP数据包进行解析,获取待请求的IP地址;并向所述客户端发送所述IP地址;
其中,所述DNS服务器为预先建立的,且独立于应用系统提供的DNS服务器;所述DNS接口为预先建立的,且所述DNS接口使用的解析协议独立于应用系统提供的解析协议。
9.如权利要求8所述的系统,其特征在于,所述DNS服务器具体用于:利用所述SSL协议中的SSLContext类调用getSSLContext方法获取SSL环境变量context;
利用所述环境变量context调用getSocketFactory方法获取socket工厂对象;
利用所述socket工厂对象的createSocket方法创建SSLScoket连接;
基于所述SSLScoket连接,通过预设的端口接收客户端发送的DNS访问请求。
10.如权利要求8所述的系统,其特征在于,所述DNS接口具体用于:根据IP数据包的长度字段读取加密的数据;
利用预先约定的密钥对所述数据进行解密;
利用lookup回调方法在解密后的数据中读取待请求的域名,根据所述域名查询出相应的IP地址。