code: function() {
  		var hostsstr = fs.readFileSync(HOSTS, 'utf-8');
  		//一个domain 对应一个ip
  		//先分组，再去重
  		//之后去重
  		var lines = hostsstr.split(EOL);
  		var hostsobject = {};
  		var currentName;
  		var currentLog = [];
  		var uniq = {};
  		notes = {};
  		for (var i = 0; i < lines.length; i++) {
  			var line = this._parseLine(lines[i]);
  			if (!line) continue;
  			var type = line.type;
  			var val = line.value;
  			switch (type) {
  			case 1:
  				if (!currentName) {
  					currentName = this.defaultName;
  					hostsobject[currentName] = [];
  					if (currentLog.length > 0) {
  						notes[currentName] = currentLog.join(EOL);
  						currentLog = [];
  					}
  				}
  				val.forEach(function(item) {
  					var _item = uniq[currentName + item.domain + item.ip];
  					if (!_item) {
  						hostsobject[currentName].push(item);
  						_item = uniq[currentName + item.domain + item.ip] = item;
  					}
  					if (currentLog.length > 0) {
  						_item.note = (_item.note ? (_item.note + EOL) : '') + currentLog.join(EOL);
  					}
  
  				});
  				currentLog = [];
  				break;
  			case 2:
  				currentLog.push(val);
  				break;
  			case 3:
  				currentName = val;
  				hostsobject[currentName] = [];
  				if (currentLog.length > 0) {
  					notes[currentName] = currentLog.join(EOL);
  					currentLog = [];
  				}
  				break;
  			default:
  				break;
  			}
  		}
  		if (currentLog.length > 0) {
  			notes.bottom = currentLog.join(EOL);
  			currentLog = [];
  		}
  		return hostsobject;
  	}
docs: 读取host内容并解析成一个json对象