Server.prototype.close = function() {
this._handle.close();
};
+
+
+// TODO: isIP should be moved to the DNS code. Putting it here now because
+// this is what the legacy system did.
+exports.isIP = function(input) {
+ if (!input) {
+ return 4;
+ } else if (/^(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)$/.test(input)) {
+ var parts = input.split('.');
+ for (var i = 0; i < parts.length; i++) {
+ var part = parseInt(parts[i]);
+ if (part < 0 || 255 < part) {
+ return 0;
+ }
+ }
+ return 4;
+ } else if (/^(::)?([a-fA-F0-9]+(::?)?)*$/.test(input)) {
+ return 6;
+ } else {
+ return 0;
+ }
+}
+
+
+exports.isIPv4 = function(input) {
+ return TCP.isIP(input) === 4;
+};
+
+
+exports.isIPv6 = function(input) {
+ return TCP.isIP(input) === 6;
+};