/**
*
*/
package com.sina.util.dnscache.model;
import org.json.JSONException;
import org.json.JSONStringer;
/**
*
* 项目名称: DNSCache 类名称: HttpDnsPack 类描述:
* 将httpdns返回的数据封装一层,方便日后httpdns接口改动不影响数据库模型。 并且该接口还会标识httpdns错误之后的一些信息用来上报 创建人:
* fenglei 创建时间: 2015-3-30 上午11:20:11
*
* 修改人: 修改时间: 修改备注:
*
* @version V1.0
*/
public class HttpDnsPack {
/**
* httpdns 接口返回字段 域名信息
*/
public String domain = "";
/**
* httpdns 接口返回字段 请求的设备ip(也可能是sp的出口ip)
*/
public String device_ip = "";
/**
* httpdns 接口返回字段 请求的设备sp运营商
*/
public String device_sp = "";
/**
* httpdns 接口返回的a记录。(目前不包含cname别名信息)
*/
public IP[] dns = null;
/**
* 本机识别的sp运营商,手机卡下运营商正常,wifi下为ssid名字
*/
public String localhostSp = "";
/**
* httpdns 接口返回的原始信息
*/
public String rawResult;
/**
* 打印该类相关变量信息
*/
public String toString() {
String str = "HttpDnsPack class \n";
str += "domain:" + domain + "\n";
str += "device_ip:" + device_ip + "\n";
str += "device_sp:" + device_sp + "\n";
if (dns != null) {
str += "-------------------\n";
for (int i = 0; i < dns.length; i++) {
str += "dns[" + i + "]:" + dns[i] + "\n";
}
str += "-------------------\n";
}
return str;
}
/**
* A记录相关字段信息
*/
public static class IP {
/**
* A记录IP
*/
public String ip = "";
/**
* 域名A记录过期时间
*/
public String ttl = "";
/**
* 服务器推荐使用的A记录 级别从0-10
*/
public String priority = "";
/**
* 打印该类信息
*/
public String toString() {
String str = "IP class \n";
str += "ip:" + ip + "\n";
str += "ttl:" + ttl + "\n";
str += "priority:" + priority + "\n";
return str;
}
public String toJson() {
JSONStringer jsonStringer = new JSONStringer();
try {
jsonStringer.object()//
.key("ip").value(ip)//
.key("ttl").value(ttl)//
.key("priority").value(priority)//
.endObject();
} catch (JSONException e) {
e.printStackTrace();
return "{}";
}
return jsonStringer.toString();
}
}
public String toJson() {
JSONStringer jsonStringer = new JSONStringer();
try {
StringBuilder ipArrayStr = new StringBuilder();
ipArrayStr.append("[");
if (null != dns) {
for (IP ip : dns) {
ipArrayStr.append(ip.toJson() + ",");
}
}
if (ipArrayStr.toString().endsWith(",")) {
ipArrayStr.deleteCharAt(ipArrayStr.length() - 1);
}
ipArrayStr.append("]");
jsonStringer.object()//
.key("domain").value(domain)//
.key("device_ip").value(device_ip)//
.key("device_sp").value(device_sp)//
.key("localhostSp").value(localhostSp)//
.key("rawResult").value(rawResult)//
.key("ipArray").value(ipArrayStr.toString())//
.endObject();
} catch (JSONException e) {
e.printStackTrace();
return "{}";
}
return jsonStringer.toString();
}
}