File tree Expand file tree Collapse file tree 5 files changed +198
-0
lines changed Expand file tree Collapse file tree 5 files changed +198
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Breadcrumb for Laravel 5
2
+
3
+ This package provide simple way to filter by IP addresses for your Laravel 5 application.
4
+
5
+ ## Install
6
+
7
+ Via Composer
8
+
9
+ ``` bash
10
+ $ composer require mares29/laravel-ip-filter
11
+ ```
12
+
13
+ Laravel 5.5+ automaticly register service provider and set Alias thanks to auto-discovery. With lower laravel version add to ** app.php**
14
+
15
+ ``` php
16
+ 'providers' => [
17
+ \Mares29\Breadcrumb\FilterIpServiceProvider::class,
18
+ ]
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ Export filter for IpFilter
24
+
25
+ ``` terminal
26
+ php artisan vendor:publish --provider="Mares29\IpFilter\FilterIpServiceProvider"
27
+ ```
28
+
29
+ Use one ** black list** or ** white list** . For example, allow acces only from ip address * 127.0.0.1* .
30
+
31
+ ``` php
32
+ // White list - List of allowed IP addresses
33
+ 'allowed' => [
34
+ '127.0.0.1'
35
+ ],
36
+
37
+ // Black list - List of denied IP addresses
38
+ 'denied' => [],
39
+ ```
40
+
41
+ Add middleware for Yours all web routes.
42
+
43
+ ``` php
44
+ protected function mapWebRoutes()
45
+ {
46
+ Route::middleware('web')
47
+ ->middleware('filterIp')
48
+ ->namespace($this->namespace)
49
+ ->group(base_path('routes/web.php'));
50
+ }
51
+ ```
52
+ or just for specific routes
53
+
54
+ ``` php
55
+ Route::get('/', function () {
56
+ return view('welcome');
57
+ })->middleware('filterIp');
58
+ ```
59
+
60
+ ## Credits
61
+
62
+ - [ Karel Mares] [ https://github.com/mares29 ]
63
+
64
+ ## License
65
+
66
+ The MIT License (MIT). Please see [ License File] ( LICENSE.md ) for more information.
67
+
Original file line number Diff line number Diff line change
1
+ {
2
+ "name" : " mares29/laravel-ip-filter" ,
3
+ "description" : " Filter request by IP addresses for Laravel" ,
4
+ "keywords" : [
5
+ " mares29" ,
6
+ " laravel" ,
7
+ " filter-ip-address" ,
8
+ " middleware"
9
+ ],
10
+ "homepage" : " https://github.com/mares29/laravel-ip-filter" ,
11
+ "license" : " MIT" ,
12
+ "authors" : [
13
+ {
14
+ "name" : " Karel Mares" ,
15
+
16
+ "homepage" : " https://karelmares.cz" ,
17
+ "role" : " Developer"
18
+ }
19
+ ],
20
+ "autoload" : {
21
+ "psr-4" : {
22
+ "Mares29\\ IpFilter\\ " : " src/"
23
+ }
24
+ },
25
+ "extra" : {
26
+ "laravel" : {
27
+ "providers" : [
28
+ " Mares29\\ IpFilter\\ FilterIpServiceProvider"
29
+ ]
30
+ }
31
+ }
32
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ return [
4
+ /*
5
+ |--------------------------------------------------------------------------
6
+ | Ip Filter Config
7
+ |--------------------------------------------------------------------------
8
+ |
9
+ | Use one of supported filter methods.
10
+ |
11
+ | Supported: "Black list", "White list"
12
+ |
13
+ */
14
+
15
+ // White list - List of allowed IP addresses
16
+ 'allowed ' => [],
17
+
18
+ // Black list - List of denied IP addresses
19
+ 'denied ' => [],
20
+ ];
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Mares29 \IpFilter ;
4
+
5
+ use Closure ;
6
+
7
+ class FilterIp
8
+ {
9
+
10
+ /**
11
+ * Handle an incoming request.
12
+ *
13
+ * @param \Illuminate\Http\Request $request
14
+ * @param \Closure $next
15
+ * @return mixed
16
+ */
17
+ public function handle ($ request , Closure $ next )
18
+ {
19
+ $ whiteList = config ('ip-filter.allowed ' , []);
20
+ $ blackList = config ('ip-filter.denied ' , []);
21
+ $ ip = $ request ->ip ();
22
+
23
+ if (
24
+ (!count ($ whiteList ) && !count ($ blackList )) ||
25
+ count ($ whiteList ) > 0 && in_array ($ ip , $ whiteList ) ||
26
+ count ($ blackList ) > 0 && !in_array ($ ip , $ blackList )
27
+ ) {
28
+ return $ next ($ request );
29
+ }
30
+ }
31
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Mares29 \IpFilter ;
4
+
5
+ use Illuminate \Routing \Router ;
6
+ use Illuminate \Support \ServiceProvider ;
7
+
8
+ class FilterIpServiceProvider extends ServiceProvider
9
+ {
10
+
11
+ /**
12
+ * Bootstrap the application services.
13
+ *
14
+ * @param Router $router
15
+ * @return void
16
+ */
17
+ public function boot (Router $ router )
18
+ {
19
+ $ configPath = __DIR__ . '/../config/ip-filter.php ' ;
20
+ $ this ->publishes ([$ configPath => $ this ->getConfigPath ()], 'config ' );
21
+ $ router ->aliasMiddleware ('filterIp ' , FilterIp::class);
22
+ }
23
+
24
+
25
+
26
+ /**
27
+ * Register the application services.
28
+ *
29
+ * @return void
30
+ */
31
+ public function register ()
32
+ {
33
+ $ configPath = __DIR__ . '/../config/ip-filter.php ' ;
34
+ $ this ->mergeConfigFrom ($ configPath , 'ip-filter ' );
35
+ }
36
+
37
+
38
+
39
+ /**
40
+ * Get the config path
41
+ *
42
+ * @return string
43
+ */
44
+ protected function getConfigPath ()
45
+ {
46
+ return config_path ('ip-filter.php ' );
47
+ }
48
+ }
You can’t perform that action at this time.
0 commit comments