| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 62926d8 commit b16f67a
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1568,12 +1568,12 @@ exports.isIP = cares.isIP; | |||
| 1568 | 1568 | ||
| 1569 | 1569 | ||
| 1570 | 1570 | exports.isIPv4 = function(input) { | |
| 1571 | - return exports.isIP(input) === 4; | ||
| 1571 | + return cares.isIPv4(input); | ||
| 1572 | 1572 | }; | |
| 1573 | 1573 | ||
| 1574 | 1574 | ||
| 1575 | 1575 | exports.isIPv6 = function(input) { | |
| 1576 | - return exports.isIP(input) === 6; | ||
| 1576 | + return cares.isIPv6(input); | ||
| 1577 | 1577 | }; | |
| 1578 | 1578 | ||
| 1579 | 1579 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1044,6 +1044,27 @@ static void IsIP(const FunctionCallbackInfo<Value>& args) { | |||
| 1044 | 1044 | args.GetReturnValue().Set(rc); | |
| 1045 | 1045 | } | |
| 1046 | 1046 | ||
| 1047 | + static void IsIPv4(const FunctionCallbackInfo<Value>& args) { | ||
| 1048 | + node::Utf8Value ip(args.GetIsolate(), args[0]); | ||
| 1049 | + char address_buffer[sizeof(struct in_addr)]; | ||
| 1050 | + | ||
| 1051 | + if (uv_inet_pton(AF_INET, *ip, &address_buffer) == 0) { | ||
| 1052 | + args.GetReturnValue().Set(true); | ||
| 1053 | + } else { | ||
| 1054 | + args.GetReturnValue().Set(false); | ||
| 1055 | + } | ||
| 1056 | + } | ||
| 1057 | + | ||
| 1058 | + static void IsIPv6(const FunctionCallbackInfo<Value>& args) { | ||
| 1059 | + node::Utf8Value ip(args.GetIsolate(), args[0]); | ||
| 1060 | + char address_buffer[sizeof(struct in6_addr)]; | ||
| 1061 | + | ||
| 1062 | + if (uv_inet_pton(AF_INET6, *ip, &address_buffer) == 0) { | ||
| 1063 | + args.GetReturnValue().Set(true); | ||
| 1064 | + } else { | ||
| 1065 | + args.GetReturnValue().Set(false); | ||
| 1066 | + } | ||
| 1067 | + } | ||
| 1047 | 1068 | ||
| 1048 | 1069 | static void GetAddrInfo(const FunctionCallbackInfo<Value>& args) { | |
| 1049 | 1070 | Environment* env = Environment::GetCurrent(args); | |
@@ -1283,6 +1304,8 @@ static void Initialize(Local<Object> target, | |||
| 1283 | 1304 | env->SetMethod(target, "getaddrinfo", GetAddrInfo); | |
| 1284 | 1305 | env->SetMethod(target, "getnameinfo", GetNameInfo); | |
| 1285 | 1306 | env->SetMethod(target, "isIP", IsIP); | |
| 1307 | + env->SetMethod(target, "isIPv4", IsIPv4); | ||
| 1308 | + env->SetMethod(target, "isIPv6", IsIPv6); | ||
| 1286 | 1309 | ||
| 1287 | 1310 | env->SetMethod(target, "strerror", StrError); | |
| 1288 | 1311 | env->SetMethod(target, "getServers", GetServers); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -31,11 +31,40 @@ assert.equal(net.isIP('0000:0000:0000:0000:0000:0000:12345:0000'), 0); | |||
| 31 | 31 | assert.equal(net.isIP('0'), 0); | |
| 32 | 32 | assert.equal(net.isIP(), 0); | |
| 33 | 33 | assert.equal(net.isIP(''), 0); | |
| 34 | + assert.equal(net.isIP(null), 0); | ||
| 35 | + assert.equal(net.isIP(123), 0); | ||
| 36 | + assert.equal(net.isIP(true), 0); | ||
| 37 | + assert.equal(net.isIP({}), 0); | ||
| 38 | + assert.equal(net.isIP({ toString: () => '::2001:252:1:255.255.255.255' }), 6); | ||
| 39 | + assert.equal(net.isIP({ toString: () => '127.0.0.1' }), 4); | ||
| 40 | + assert.equal(net.isIP({ toString: () => 'bla' }), 0); | ||
| 34 | 41 | ||
| 35 | 42 | assert.equal(net.isIPv4('127.0.0.1'), true); | |
| 36 | 43 | assert.equal(net.isIPv4('example.com'), false); | |
| 37 | 44 | assert.equal(net.isIPv4('2001:252:0:1::2008:6'), false); | |
| 45 | + assert.equal(net.isIPv4(), false); | ||
| 46 | + assert.equal(net.isIPv4(''), false); | ||
| 47 | + assert.equal(net.isIPv4(null), false); | ||
| 48 | + assert.equal(net.isIPv4(123), false); | ||
| 49 | + assert.equal(net.isIPv4(true), false); | ||
| 50 | + assert.equal(net.isIPv4({}), false); | ||
| 51 | + assert.equal(net.isIPv4({ | ||
| 52 | + toString: () => '::2001:252:1:255.255.255.255' | ||
| 53 | + }), false); | ||
| 54 | + assert.equal(net.isIPv4({ toString: () => '127.0.0.1' }), true); | ||
| 55 | + assert.equal(net.isIPv4({ toString: () => 'bla' }), false); | ||
| 38 | 56 | ||
| 39 | 57 | assert.equal(net.isIPv6('127.0.0.1'), false); | |
| 40 | 58 | assert.equal(net.isIPv6('example.com'), false); | |
| 41 | 59 | assert.equal(net.isIPv6('2001:252:0:1::2008:6'), true); | |
| 60 | + assert.equal(net.isIPv6(), false); | ||
| 61 | + assert.equal(net.isIPv6(''), false); | ||
| 62 | + assert.equal(net.isIPv6(null), false); | ||
| 63 | + assert.equal(net.isIPv6(123), false); | ||
| 64 | + assert.equal(net.isIPv6(true), false); | ||
| 65 | + assert.equal(net.isIPv6({}), false); | ||
| 66 | + assert.equal(net.isIPv6({ | ||
| 67 | + toString: () => '::2001:252:1:255.255.255.255' | ||
| 68 | + }), true); | ||
| 69 | + assert.equal(net.isIPv6({ toString: () => '127.0.0.1' }), false); | ||
| 70 | + assert.equal(net.isIPv6({ toString: () => 'bla' }), false); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments