forked from pashamesh/lumen-geoip
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcompositor.json
More file actions
138 lines (138 loc) · 8.63 KB
/
compositor.json
File metadata and controls
138 lines (138 loc) · 8.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
"name": "code-orange/lumen-geoip",
"version": "0.1.4",
"libraries": {
"xv": "^1.1.25"
},
"title": "Lumen GeoIP",
"branch": "master",
"style": {
"name": "Default",
"componentSet": {
"nav": "nav/BasicNav",
"header": "header/BannerHeader",
"article": "article/BasicArticle",
"footer": "footer/BasicFooter"
},
"fontFamily": "-apple-system, BlinkMacSystemFont, sans-serif",
"fontWeight": 400,
"bold": 600,
"lineHeight": 1.5,
"typeScale": [
72,
48,
24,
20,
16,
14,
12
],
"monospace": "Menlo, monospace",
"heading": {
"fontFamily": null,
"fontStyle": null,
"fontWeight": 600,
"lineHeight": 1.25,
"textTransform": null,
"letterSpacing": null
},
"h0": {},
"h1": {},
"h2": {},
"h3": {},
"h4": {},
"h5": {},
"h6": {},
"alternativeText": {},
"space": [
0,
8,
16,
32,
48,
64,
96
],
"layout": {
"maxWidth": 1024,
"centered": false
},
"colors": {
"text": "#111",
"background": "#fff",
"primary": "#08e",
"secondary": "#059",
"highlight": "#e08",
"border": "#ddd",
"muted": "#eee"
},
"border": {
"width": 1,
"radius": 2
},
"link": {},
"button": {
"hover": {
"boxShadow": "inset 0 0 0 999px rgba(0, 0, 0, .125)"
}
},
"input": {},
"body": {
"margin": 0
},
"breakpoints": {
"xs": "@media screen and (max-width:40em)",
"sm": "@media screen and (min-width:40em)",
"md": "@media screen and (min-width:52em)",
"lg": "@media screen and (min-width:64em)"
}
},
"content": [
{
"component": "nav",
"links": [
{
"href": "https://github.com/code-orange/lumen-geoip",
"text": "GitHub"
}
]
},
{
"component": "header",
"heading": "lumen-geoip",
"subhead": "GeoIP for Lumen",
"children": [
{
"component": "ui/TweetButton",
"text": "lumen-geoip: GeoIP for Lumen",
"url": null
},
{
"component": "ui/GithubButton",
"user": "code-orange",
"repo": "lumen-geoip"
}
]
},
{
"component": "article",
"metadata": {
"source": "github.readme"
},
"html": "<h1>GeoIP for Lumen</h1>\n<p><a href=\"https://packagist.org/packages/code-orange/lumen-geoip\"><img src=\"https://poser.pugx.org/code-orange/lumen-geoip/v/stable\"></a> <a href=\"https://packagist.org/packages/code-orange/lumen-geoip\"><img src=\"https://poser.pugx.org/code-orange/lumen-geoip/downloads\"></a> <a href=\"https://packagist.org/packages/code-orange/lumen-geoip\"><img src=\"https://poser.pugx.org/code-orange/lumen-geoip/license\"></a> <a href=\"https://packagist.org/packages/code-orange/lumen-geoip\"><img src=\"https://poser.pugx.org/code-orange/lumen-geoip/composerlock\"></a></p>\n<p>Determine the geographical location of website visitors based on their IP addresses.</p>\n<h2>Installation</h2>\n<p>To install this package, just install through composer</p>\n<pre>$ composer <span class=\"hljs-meta\">require</span> <span class=\"hljs-meta\">code</span>-orange/lumen-geoip</pre><h3>Providers</h3>\n<p>Next, open <code>bootstrap/app.php</code> and add under the Register Service Providers section:</p>\n<pre>...\n$app->register(CodeOrange\\GeoIP\\GeoIPServiceProvider::class);</pre><h3>Update MaxMind GeoLite2 City database</h3>\n<p>Run this on the command line from the root of your project:</p>\n<pre><span class=\"hljs-variable\">$ </span>php artisan <span class=\"hljs-symbol\">geoip:</span>update</pre><h3>Usage</h3>\n<p>GeoIP will try to determine the IP using the following http headers: <code>HTTP_CLIENT_IP</code>, <code>HTTP_X_FORWARDED_FOR</code>, <code>HTTP_X_FORWARDED</code>, <code>HTTP_X_CLUSTER_CLIENT_IP</code>, <code>HTTP_FORWARDED_FOR</code>, <code>HTTP_FORWARDED</code>, <code>REMOTE_ADDR</code> in this order. Optionally you can set an IP as the only parameter to set it.</p>\n<pre>$record = app()->geoip->getLocation(<span class=\"hljs-string\">'232.223.11.11'</span>);\n$record = GeoIP::getLocation(<span class=\"hljs-string\">'232.223.11.11'</span>); <span class=\"hljs-comment\">// If you have enabled facades</span>\n\n<span class=\"hljs-keyword\">print</span>($record->country->isoCode . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// 'US'</span>\n<span class=\"hljs-keyword\">print</span>($record->country->name . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// 'United States'</span>\n<span class=\"hljs-keyword\">print</span>($record->country->names[<span class=\"hljs-string\">'zh-CN'</span>] . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// '美国'</span>\n\n<span class=\"hljs-keyword\">print</span>($record->mostSpecificSubdivision->name . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// 'Minnesota'</span>\n<span class=\"hljs-keyword\">print</span>($record->mostSpecificSubdivision->isoCode . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// 'MN'</span>\n\n<span class=\"hljs-keyword\">print</span>($record->city->name . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// 'Minneapolis'</span>\n\n<span class=\"hljs-keyword\">print</span>($record->postal->code . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// '55455'</span>\n\n<span class=\"hljs-keyword\">print</span>($record->location->latitude . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// 44.9733</span>\n<span class=\"hljs-keyword\">print</span>($record->location->longitude . <span class=\"hljs-string\">"\\n"</span>); <span class=\"hljs-comment\">// -93.2323</span></pre><h3>Other Methods</h3>\n<p>These methods are also available to use within your applications.</p>\n<pre>app()->geoip->checkIp($ip) <span class=\"hljs-comment\">// Checks IP to make sure IP is a valid IPv4 or IPv6 address and not within a private or reserved range</span>\napp()->geoip->getIp() <span class=\"hljs-comment\">// Returns the detected client IP</span></pre><h3>Default Location Data</h3>\n<p>When an IP is not detected it will be set to 127.0.0.1 which will ultimately throw an Exception. If you are not in production your record will default to the following data.</p>\n<pre><span class=\"hljs-keyword\">array</span> (\n <span class=\"hljs-string\">"ip"</span> => <span class=\"hljs-string\">"232.223.11.11"</span>,\n <span class=\"hljs-string\">"isoCode"</span> => <span class=\"hljs-string\">"US"</span>,\n <span class=\"hljs-string\">"country"</span> => <span class=\"hljs-string\">"United States"</span>,\n <span class=\"hljs-string\">"city"</span> => <span class=\"hljs-string\">"New Haven"</span>,\n <span class=\"hljs-string\">"state"</span> => <span class=\"hljs-string\">"CT"</span>,\n <span class=\"hljs-string\">"postal_code"</span> => <span class=\"hljs-string\">"06510"</span>,\n <span class=\"hljs-string\">"lat"</span> => <span class=\"hljs-number\">41.28</span>,\n <span class=\"hljs-string\">"lon"</span> => <span class=\"hljs-number\">-72.88</span>,\n <span class=\"hljs-string\">"timezone"</span> => <span class=\"hljs-string\">"America/New_York"</span>,\n <span class=\"hljs-string\">"continent"</span> => <span class=\"hljs-string\">"NA"</span>,\n <span class=\"hljs-string\">"default"</span> => <span class=\"hljs-keyword\">false</span>\n);</pre><h2>Change Log</h2>\n<h4>v3.0.0</h4>\n<ul>\n<li>Added support for Lumen 5.5</li>\n</ul>\n<h4>v2.0.0</h4>\n<ul>\n<li>Simplified namespace</li>\n<li>Added Facade support</li>\n<li>Added default location when in development</li>\n<li>Fixed bug where detected IP was always blank</li>\n</ul>\n"
},
{
"component": "footer",
"links": [
{
"href": "https://github.com/code-orange/lumen-geoip",
"text": "GitHub"
},
{
"href": "https://github.com/code-orange",
"text": "code-orange"
}
]
}
]
}