document.selection.text = document.selection.text.split("\r\n").sort( function(a, b) { if (!a.length) return 1; if (!b.length) return -1; var aip = getIP(a); var bip = getIP(b); for (var i = 0, n = aip.length, d; i < n; i++) { d = aip[i] - bip[i]; if (d) return d; } var aname = getName(a); var bname = getName(b); for (var i = 0, n = Math.min(aname.length, bname.length), d; i < n; i++) { d = aname.charCodeAt(i) - bname.charCodeAt(i); if (d) return d; } return aname.length - bname.length; function getIP(line) { var i = line.indexOf(' '); if (i == -1) i = line.indexOf('\t'); return line.substring(0, i).split('.'); } function getName(line) { var i = line.indexOf(' '); if (i == -1) i = line.indexOf('\t'); if (i == -1) return ""; i++; for (var c; (c = line.charAt(i)); i++) if (c != ' ' && c != '\t') return line.substring(i); return ""; } } ).join("\r\n");