node-red-contrib-ipgeolocation 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +423 -0
- package/examples/01 - Single IP Lookup.json +102 -0
- package/examples/02 - Bulk IP Lookup.json +98 -0
- package/examples/03 - IP Security Lookup.json +98 -0
- package/examples/04 - Bulk IP Security.json +96 -0
- package/examples/05 - Abuse Contact Lookup.json +98 -0
- package/examples/06 - ASN Lookup.json +102 -0
- package/examples/07 - Timezone Lookup.json +101 -0
- package/examples/08 - Astronomy (Sun & Moon).json +109 -0
- package/examples/09 - User-Agent Parser.json +96 -0
- package/index.js +22 -0
- package/nodes/ipgeo-abuse.html +203 -0
- package/nodes/ipgeo-abuse.js +148 -0
- package/nodes/ipgeo-asn.html +297 -0
- package/nodes/ipgeo-asn.js +197 -0
- package/nodes/ipgeo-astronomy.html +242 -0
- package/nodes/ipgeo-astronomy.js +195 -0
- package/nodes/ipgeo-bulk-security.html +166 -0
- package/nodes/ipgeo-bulk-security.js +177 -0
- package/nodes/ipgeo-bulk.html +158 -0
- package/nodes/ipgeo-bulk.js +146 -0
- package/nodes/ipgeo-config.html +72 -0
- package/nodes/ipgeo-config.js +30 -0
- package/nodes/ipgeo-lookup.html +300 -0
- package/nodes/ipgeo-lookup.js +165 -0
- package/nodes/ipgeo-security.html +214 -0
- package/nodes/ipgeo-security.js +150 -0
- package/nodes/ipgeo-timezone.html +201 -0
- package/nodes/ipgeo-timezone.js +154 -0
- package/nodes/ipgeo-useragent.html +133 -0
- package/nodes/ipgeo-useragent.js +110 -0
- package/nodes/lib/api-client.js +210 -0
- package/nodes/lib/node-helpers.js +214 -0
- package/package.json +72 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_security",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: IP Security",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Threat intelligence for a single IP (proxy / VPN / TOR / bot / threat score). Requires a plan that includes the Security API. Domains are not accepted by this endpoint."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_security",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: IP Security \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nThreat intelligence for a single IP (proxy / VPN / TOR / bot / threat score). Requires a plan that includes the Security API. Domains are not accepted by this endpoint.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_security",
|
|
22
|
+
"name": "Check 1.0.0.1",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "",
|
|
27
|
+
"vt": "date"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-security",
|
|
44
|
+
"name": "IP Security",
|
|
45
|
+
"ipType": "str",
|
|
46
|
+
"ipValue": "1.0.0.1",
|
|
47
|
+
"fields": "",
|
|
48
|
+
"excludes": "",
|
|
49
|
+
"outputProp": "payload",
|
|
50
|
+
"outputType": "msg",
|
|
51
|
+
"twoOutputs": true,
|
|
52
|
+
"z": "ipgeo_ex_security",
|
|
53
|
+
"server": "ipgeo_cfg",
|
|
54
|
+
"x": 410,
|
|
55
|
+
"y": 120,
|
|
56
|
+
"wires": [
|
|
57
|
+
[
|
|
58
|
+
"dbg_ok"
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"dbg_err"
|
|
62
|
+
]
|
|
63
|
+
],
|
|
64
|
+
"id": "ipgeo_node"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "dbg_ok",
|
|
68
|
+
"type": "debug",
|
|
69
|
+
"z": "ipgeo_ex_security",
|
|
70
|
+
"name": "Result",
|
|
71
|
+
"active": true,
|
|
72
|
+
"tosidebar": true,
|
|
73
|
+
"console": false,
|
|
74
|
+
"complete": "payload",
|
|
75
|
+
"x": 640,
|
|
76
|
+
"y": 100,
|
|
77
|
+
"wires": []
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "dbg_err",
|
|
81
|
+
"type": "debug",
|
|
82
|
+
"z": "ipgeo_ex_security",
|
|
83
|
+
"name": "Error",
|
|
84
|
+
"active": true,
|
|
85
|
+
"tosidebar": true,
|
|
86
|
+
"console": false,
|
|
87
|
+
"complete": "true",
|
|
88
|
+
"x": 640,
|
|
89
|
+
"y": 160,
|
|
90
|
+
"wires": []
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "ipgeo_cfg",
|
|
94
|
+
"type": "ipgeo-config",
|
|
95
|
+
"z": "ipgeo_ex_security",
|
|
96
|
+
"name": "IPGeolocation API"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_bulksec",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: Bulk Security",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Threat intelligence for many IPs in one request. Invalid/private IPs come back as { message } entries and are counted on msg.ipgeo_invalid_count."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_bulksec",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: Bulk Security \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nThreat intelligence for many IPs in one request. Invalid/private IPs come back as { message } entries and are counted on msg.ipgeo_invalid_count.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_bulksec",
|
|
22
|
+
"name": "Send 2 IPs",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "[\"1.0.0.1\",\"8.8.8.8\"]",
|
|
27
|
+
"vt": "json"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-bulk-security",
|
|
44
|
+
"name": "Bulk Security",
|
|
45
|
+
"fields": "",
|
|
46
|
+
"excludes": "",
|
|
47
|
+
"outputProp": "payload",
|
|
48
|
+
"outputType": "msg",
|
|
49
|
+
"twoOutputs": true,
|
|
50
|
+
"z": "ipgeo_ex_bulksec",
|
|
51
|
+
"server": "ipgeo_cfg",
|
|
52
|
+
"x": 410,
|
|
53
|
+
"y": 120,
|
|
54
|
+
"wires": [
|
|
55
|
+
[
|
|
56
|
+
"dbg_ok"
|
|
57
|
+
],
|
|
58
|
+
[
|
|
59
|
+
"dbg_err"
|
|
60
|
+
]
|
|
61
|
+
],
|
|
62
|
+
"id": "ipgeo_node"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "dbg_ok",
|
|
66
|
+
"type": "debug",
|
|
67
|
+
"z": "ipgeo_ex_bulksec",
|
|
68
|
+
"name": "Result",
|
|
69
|
+
"active": true,
|
|
70
|
+
"tosidebar": true,
|
|
71
|
+
"console": false,
|
|
72
|
+
"complete": "payload",
|
|
73
|
+
"x": 640,
|
|
74
|
+
"y": 100,
|
|
75
|
+
"wires": []
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "dbg_err",
|
|
79
|
+
"type": "debug",
|
|
80
|
+
"z": "ipgeo_ex_bulksec",
|
|
81
|
+
"name": "Error",
|
|
82
|
+
"active": true,
|
|
83
|
+
"tosidebar": true,
|
|
84
|
+
"console": false,
|
|
85
|
+
"complete": "true",
|
|
86
|
+
"x": 640,
|
|
87
|
+
"y": 160,
|
|
88
|
+
"wires": []
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "ipgeo_cfg",
|
|
92
|
+
"type": "ipgeo-config",
|
|
93
|
+
"z": "ipgeo_ex_bulksec",
|
|
94
|
+
"name": "IPGeolocation API"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_abuse",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: Abuse Contact",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Look up the network abuse contact (emails, phone, organisation) for an IP \u2014 useful for automated abuse reporting."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_abuse",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: Abuse Contact \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nLook up the network abuse contact (emails, phone, organisation) for an IP \u2014 useful for automated abuse reporting.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_abuse",
|
|
22
|
+
"name": "Lookup 1.0.0.1",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "",
|
|
27
|
+
"vt": "date"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-abuse",
|
|
44
|
+
"name": "Abuse Contact",
|
|
45
|
+
"ipType": "str",
|
|
46
|
+
"ipValue": "1.0.0.1",
|
|
47
|
+
"fields": "",
|
|
48
|
+
"excludes": "",
|
|
49
|
+
"outputProp": "payload",
|
|
50
|
+
"outputType": "msg",
|
|
51
|
+
"twoOutputs": true,
|
|
52
|
+
"z": "ipgeo_ex_abuse",
|
|
53
|
+
"server": "ipgeo_cfg",
|
|
54
|
+
"x": 410,
|
|
55
|
+
"y": 120,
|
|
56
|
+
"wires": [
|
|
57
|
+
[
|
|
58
|
+
"dbg_ok"
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"dbg_err"
|
|
62
|
+
]
|
|
63
|
+
],
|
|
64
|
+
"id": "ipgeo_node"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "dbg_ok",
|
|
68
|
+
"type": "debug",
|
|
69
|
+
"z": "ipgeo_ex_abuse",
|
|
70
|
+
"name": "Result",
|
|
71
|
+
"active": true,
|
|
72
|
+
"tosidebar": true,
|
|
73
|
+
"console": false,
|
|
74
|
+
"complete": "payload",
|
|
75
|
+
"x": 640,
|
|
76
|
+
"y": 100,
|
|
77
|
+
"wires": []
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "dbg_err",
|
|
81
|
+
"type": "debug",
|
|
82
|
+
"z": "ipgeo_ex_abuse",
|
|
83
|
+
"name": "Error",
|
|
84
|
+
"active": true,
|
|
85
|
+
"tosidebar": true,
|
|
86
|
+
"console": false,
|
|
87
|
+
"complete": "true",
|
|
88
|
+
"x": 640,
|
|
89
|
+
"y": 160,
|
|
90
|
+
"wires": []
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "ipgeo_cfg",
|
|
94
|
+
"type": "ipgeo-config",
|
|
95
|
+
"z": "ipgeo_ex_abuse",
|
|
96
|
+
"name": "IPGeolocation API"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_asn",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: ASN Lookup",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Look up Autonomous System details by ASN (here AS15169, Google). Switch the node's Query mode to look up by IP or to auto-detect the caller IP."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_asn",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: ASN Lookup \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nLook up Autonomous System details by ASN (here AS15169, Google). Switch the node's Query mode to look up by IP or to auto-detect the caller IP.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_asn",
|
|
22
|
+
"name": "Lookup AS15169",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "",
|
|
27
|
+
"vt": "date"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-asn",
|
|
44
|
+
"name": "ASN Lookup",
|
|
45
|
+
"queryType": "asn",
|
|
46
|
+
"ipType": "str",
|
|
47
|
+
"ipValue": "",
|
|
48
|
+
"asnType": "str",
|
|
49
|
+
"asnValue": "AS15169",
|
|
50
|
+
"include": "",
|
|
51
|
+
"fields": "",
|
|
52
|
+
"excludes": "",
|
|
53
|
+
"outputProp": "payload",
|
|
54
|
+
"outputType": "msg",
|
|
55
|
+
"twoOutputs": true,
|
|
56
|
+
"z": "ipgeo_ex_asn",
|
|
57
|
+
"server": "ipgeo_cfg",
|
|
58
|
+
"x": 410,
|
|
59
|
+
"y": 120,
|
|
60
|
+
"wires": [
|
|
61
|
+
[
|
|
62
|
+
"dbg_ok"
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
"dbg_err"
|
|
66
|
+
]
|
|
67
|
+
],
|
|
68
|
+
"id": "ipgeo_node"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "dbg_ok",
|
|
72
|
+
"type": "debug",
|
|
73
|
+
"z": "ipgeo_ex_asn",
|
|
74
|
+
"name": "Result",
|
|
75
|
+
"active": true,
|
|
76
|
+
"tosidebar": true,
|
|
77
|
+
"console": false,
|
|
78
|
+
"complete": "payload",
|
|
79
|
+
"x": 640,
|
|
80
|
+
"y": 100,
|
|
81
|
+
"wires": []
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "dbg_err",
|
|
85
|
+
"type": "debug",
|
|
86
|
+
"z": "ipgeo_ex_asn",
|
|
87
|
+
"name": "Error",
|
|
88
|
+
"active": true,
|
|
89
|
+
"tosidebar": true,
|
|
90
|
+
"console": false,
|
|
91
|
+
"complete": "true",
|
|
92
|
+
"x": 640,
|
|
93
|
+
"y": 160,
|
|
94
|
+
"wires": []
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "ipgeo_cfg",
|
|
98
|
+
"type": "ipgeo-config",
|
|
99
|
+
"z": "ipgeo_ex_asn",
|
|
100
|
+
"name": "IPGeolocation API"
|
|
101
|
+
}
|
|
102
|
+
]
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_tz",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: Timezone",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Get timezone details. This example uses an IANA name (America/New_York); the node also supports lookup by IP, coordinates, IATA/ICAO and UN/LOCODE."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_tz",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: Timezone \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nGet timezone details. This example uses an IANA name (America/New_York); the node also supports lookup by IP, coordinates, IATA/ICAO and UN/LOCODE.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_tz",
|
|
22
|
+
"name": "New York time",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "",
|
|
27
|
+
"vt": "date"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-timezone",
|
|
44
|
+
"name": "Timezone",
|
|
45
|
+
"mode": "tz",
|
|
46
|
+
"inputType": "str",
|
|
47
|
+
"inputValue": "America/New_York",
|
|
48
|
+
"latType": "str",
|
|
49
|
+
"latValue": "",
|
|
50
|
+
"lngType": "str",
|
|
51
|
+
"lngValue": "",
|
|
52
|
+
"outputProp": "payload",
|
|
53
|
+
"outputType": "msg",
|
|
54
|
+
"twoOutputs": true,
|
|
55
|
+
"z": "ipgeo_ex_tz",
|
|
56
|
+
"server": "ipgeo_cfg",
|
|
57
|
+
"x": 410,
|
|
58
|
+
"y": 120,
|
|
59
|
+
"wires": [
|
|
60
|
+
[
|
|
61
|
+
"dbg_ok"
|
|
62
|
+
],
|
|
63
|
+
[
|
|
64
|
+
"dbg_err"
|
|
65
|
+
]
|
|
66
|
+
],
|
|
67
|
+
"id": "ipgeo_node"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "dbg_ok",
|
|
71
|
+
"type": "debug",
|
|
72
|
+
"z": "ipgeo_ex_tz",
|
|
73
|
+
"name": "Result",
|
|
74
|
+
"active": true,
|
|
75
|
+
"tosidebar": true,
|
|
76
|
+
"console": false,
|
|
77
|
+
"complete": "payload",
|
|
78
|
+
"x": 640,
|
|
79
|
+
"y": 100,
|
|
80
|
+
"wires": []
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "dbg_err",
|
|
84
|
+
"type": "debug",
|
|
85
|
+
"z": "ipgeo_ex_tz",
|
|
86
|
+
"name": "Error",
|
|
87
|
+
"active": true,
|
|
88
|
+
"tosidebar": true,
|
|
89
|
+
"console": false,
|
|
90
|
+
"complete": "true",
|
|
91
|
+
"x": 640,
|
|
92
|
+
"y": 160,
|
|
93
|
+
"wires": []
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "ipgeo_cfg",
|
|
97
|
+
"type": "ipgeo-config",
|
|
98
|
+
"z": "ipgeo_ex_tz",
|
|
99
|
+
"name": "IPGeolocation API"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_astro",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: Astronomy",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Sun & moon rise/set and positional data for a latitude/longitude (here London). Optionally set a date (YYYY-MM-DD) and timezone on the node."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_astro",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: Astronomy \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nSun & moon rise/set and positional data for a latitude/longitude (here London). Optionally set a date (YYYY-MM-DD) and timezone on the node.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_astro",
|
|
22
|
+
"name": "London today",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "",
|
|
27
|
+
"vt": "date"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-astronomy",
|
|
44
|
+
"name": "Sun & Moon",
|
|
45
|
+
"mode": "coords",
|
|
46
|
+
"inputType": "str",
|
|
47
|
+
"inputValue": "",
|
|
48
|
+
"latType": "str",
|
|
49
|
+
"latValue": "51.5074",
|
|
50
|
+
"lngType": "str",
|
|
51
|
+
"lngValue": "-0.1278",
|
|
52
|
+
"dateType": "str",
|
|
53
|
+
"dateValue": "",
|
|
54
|
+
"tzType": "str",
|
|
55
|
+
"tzValue": "",
|
|
56
|
+
"elevationType": "str",
|
|
57
|
+
"elevationValue": "",
|
|
58
|
+
"langType": "str",
|
|
59
|
+
"langValue": "",
|
|
60
|
+
"outputProp": "payload",
|
|
61
|
+
"outputType": "msg",
|
|
62
|
+
"twoOutputs": true,
|
|
63
|
+
"z": "ipgeo_ex_astro",
|
|
64
|
+
"server": "ipgeo_cfg",
|
|
65
|
+
"x": 410,
|
|
66
|
+
"y": 120,
|
|
67
|
+
"wires": [
|
|
68
|
+
[
|
|
69
|
+
"dbg_ok"
|
|
70
|
+
],
|
|
71
|
+
[
|
|
72
|
+
"dbg_err"
|
|
73
|
+
]
|
|
74
|
+
],
|
|
75
|
+
"id": "ipgeo_node"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "dbg_ok",
|
|
79
|
+
"type": "debug",
|
|
80
|
+
"z": "ipgeo_ex_astro",
|
|
81
|
+
"name": "Result",
|
|
82
|
+
"active": true,
|
|
83
|
+
"tosidebar": true,
|
|
84
|
+
"console": false,
|
|
85
|
+
"complete": "payload",
|
|
86
|
+
"x": 640,
|
|
87
|
+
"y": 100,
|
|
88
|
+
"wires": []
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "dbg_err",
|
|
92
|
+
"type": "debug",
|
|
93
|
+
"z": "ipgeo_ex_astro",
|
|
94
|
+
"name": "Error",
|
|
95
|
+
"active": true,
|
|
96
|
+
"tosidebar": true,
|
|
97
|
+
"console": false,
|
|
98
|
+
"complete": "true",
|
|
99
|
+
"x": 640,
|
|
100
|
+
"y": 160,
|
|
101
|
+
"wires": []
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "ipgeo_cfg",
|
|
105
|
+
"type": "ipgeo-config",
|
|
106
|
+
"z": "ipgeo_ex_astro",
|
|
107
|
+
"name": "IPGeolocation API"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "ipgeo_ex_ua",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "IPGeo: User-Agent Parser",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": "Parse a User-Agent string into browser / OS / device. The inject sends a UA on msg.payload. In a real flow, point the node at msg.req.headers.user-agent behind an HTTP In node."
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "cmt",
|
|
11
|
+
"type": "comment",
|
|
12
|
+
"z": "ipgeo_ex_ua",
|
|
13
|
+
"name": "\u2500\u2500 IPGeo: User-Agent Parser \u2500\u2500",
|
|
14
|
+
"info": "Set up: after importing, open the **IPGeolocation API** config node and paste your API key.\n\nParse a User-Agent string into browser / OS / device. The inject sends a UA on msg.payload. In a real flow, point the node at msg.req.headers.user-agent behind an HTTP In node.",
|
|
15
|
+
"x": 180,
|
|
16
|
+
"y": 40
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "trig",
|
|
20
|
+
"type": "inject",
|
|
21
|
+
"z": "ipgeo_ex_ua",
|
|
22
|
+
"name": "Parse iPhone UA",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"p": "payload",
|
|
26
|
+
"v": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1",
|
|
27
|
+
"vt": "str"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"repeat": "",
|
|
31
|
+
"crontab": "",
|
|
32
|
+
"once": false,
|
|
33
|
+
"topic": "",
|
|
34
|
+
"x": 150,
|
|
35
|
+
"y": 120,
|
|
36
|
+
"wires": [
|
|
37
|
+
[
|
|
38
|
+
"ipgeo_node"
|
|
39
|
+
]
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "ipgeo-useragent",
|
|
44
|
+
"name": "Parse UA",
|
|
45
|
+
"uaType": "msg",
|
|
46
|
+
"uaValue": "payload",
|
|
47
|
+
"outputProp": "payload",
|
|
48
|
+
"outputType": "msg",
|
|
49
|
+
"twoOutputs": true,
|
|
50
|
+
"z": "ipgeo_ex_ua",
|
|
51
|
+
"server": "ipgeo_cfg",
|
|
52
|
+
"x": 410,
|
|
53
|
+
"y": 120,
|
|
54
|
+
"wires": [
|
|
55
|
+
[
|
|
56
|
+
"dbg_ok"
|
|
57
|
+
],
|
|
58
|
+
[
|
|
59
|
+
"dbg_err"
|
|
60
|
+
]
|
|
61
|
+
],
|
|
62
|
+
"id": "ipgeo_node"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "dbg_ok",
|
|
66
|
+
"type": "debug",
|
|
67
|
+
"z": "ipgeo_ex_ua",
|
|
68
|
+
"name": "Result",
|
|
69
|
+
"active": true,
|
|
70
|
+
"tosidebar": true,
|
|
71
|
+
"console": false,
|
|
72
|
+
"complete": "payload",
|
|
73
|
+
"x": 640,
|
|
74
|
+
"y": 100,
|
|
75
|
+
"wires": []
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "dbg_err",
|
|
79
|
+
"type": "debug",
|
|
80
|
+
"z": "ipgeo_ex_ua",
|
|
81
|
+
"name": "Error",
|
|
82
|
+
"active": true,
|
|
83
|
+
"tosidebar": true,
|
|
84
|
+
"console": false,
|
|
85
|
+
"complete": "true",
|
|
86
|
+
"x": 640,
|
|
87
|
+
"y": 160,
|
|
88
|
+
"wires": []
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "ipgeo_cfg",
|
|
92
|
+
"type": "ipgeo-config",
|
|
93
|
+
"z": "ipgeo_ex_ua",
|
|
94
|
+
"name": "IPGeolocation API"
|
|
95
|
+
}
|
|
96
|
+
]
|